ASP和PHP限制IP访问 只允许指定IP访问 允许*号通配符过滤IP

/**
 * 检测访问的ip是否为规定的允许的ip
 * Enter description here ...
 */
function check_ip(){
    $ALLOWED_IP=array(‘192.168.2.*‘,‘127.0.0.1‘,‘192.168.2.49‘);
    $IP=getIP();
    $check_ip_arr= explode(‘.‘,$IP);//要检测的ip拆分成数组
    #限制IP
    if(!in_array($IP,$ALLOWED_IP)) {
        foreach ($ALLOWED_IP as $val){
            if(strpos($val,‘*‘)!==false){//发现有*号替代符
                 $arr=array();//
                 $arr=explode(‘.‘, $val);
                 $bl=true;//用于记录循环检测中是否有匹配成功的
                 for($i=0;$i<4;$i++){
                     if($arr[$i]!=‘*‘){//不等于*  就要进来检测,如果为*符号替代符就不检查
                         if($arr[$i]!=$check_ip_arr[$i]){
                             $bl=false;
                             break;//终止检查本个ip 继续检查下一个ip
                         }
                     }
                 }//end for
                 if($bl){//如果是true则找到有一个匹配成功的就返回
                     return;
                     die;
                 }
            }
        }//end foreach
        header(‘HTTP/1.1 403 Forbidden‘);
        echo "Access forbidden";
        die;
    }
}
function getIP() {
    return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"]
    :(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"]
    :$_SERVER["REMOTE_ADDR"]);
}

以下为ASP版:

<%
‘受屏蔽IP地址(段)集合,星号为通配符,通常保存于配置文件中。
Const BadIPGroup = "192.168.1.*|202.68.*.*|*.12.55.34|185.*.96.24|127.*.0.1|192.168.0.1"
If IsForbidIP(BadIPGroup) = True Then
    Response.Write(GetIP &"IP地址禁止访问")
    Response.End()
End If

‘参数vBadIP:要屏蔽的IP段,IP地址集合,用|符号分隔多个IP地址(段)
‘返回Bool:True用户IP在被屏蔽范围,False 反之
Function IsForbidIP(vBadIP)
    Dim counter, arrIPPart, arrBadIP, arrBadIPPart, i, j
    arrBadIP = Split(vBadIP, "|")
    arrIPPart = Split(GetIP(), ".")
    For i = 0 To UBound(arrBadIP)
    counter = 0
    arrBadIPPart = Split(arrBadIP(i), ".")
    For j = 0 To UBound(arrIPPart)
    If(arrBadIPPart(j)) = "*" or Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) Then
    counter = counter + 1
    End If
    Next
    If counter = 4 Then
    IsForbidIP = True
    Exit Function
    End If
    Next
    IsForbidIP = False
End Function

‘‘返回客户IP地址
Function GetIP()
    Dim IP
    IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    If IP = "" Then IP = Request.ServerVariables("REMOTE_ADDR")
    GetIP = IP
End Function
%>
时间: 2024-12-16 16:01:02

ASP和PHP限制IP访问 只允许指定IP访问 允许*号通配符过滤IP的相关文章

Tomcat6 只允许指定域名访问,禁用IP地址访问,防止恶意解析

2015.02.27 突然同事反应,在百度上搜索其他域名,竟然打开了和我们P2P一模一样的网站,我第一个反应是源代码被盗用了.后来发现,是域名被恶意解析了,解决方法 1.禁止IP地址访问项目  2.只允许指定的域名访问. 环境:tomcat 6 方法: 修改tomcat 6 的配置文件  tomcat/conf/server.xml,实现原理,将tomcat 缺省参数defaultHost指向一个不存在的域名上,并添加同样的虚拟目录,这样当被一个未知的域名解析过来后,访问的缺省虚拟目录,但这个目

WIN2003使用IP安全策略只允许指定IP远程桌面连接

一,新建IP安全策略 WIN+R打开运行对话框,输入gpedit.msc进入组策略编辑器. 依次打开“本地计算机”策略--计算机配置--Windows设置--安全设置--IP安全策略,在 本地计算机上. 或是控制面板--管理工具--本地安全策略--IP安全策略,在 本地计算机上. 在右面的空白处右击,选择第一个菜单:创建IP安全策略,弹出的IP安全策略向导对话框. 点击下一步. 在名称里输入3389过虑,下一步. 取消激活默认响应规则,下一步. 选中编辑属性,下一步. 二,新建IP筛选器 在弹出

Nginx 禁止IP访问 只允许域名访问

今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从网络上搜到以下解决方案 我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时 候生效最关键的一点是,在server的设置里面添加这一行:listen 80 default; 后面的default

《TCP/IP详解卷1:协议》第3章 IP:网际协议(1)-读书笔记

章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 1.引言 IP是TCP/IP协议族中最核心的协议.所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输.IP提供不可靠.无连接的数据报传送服务. (1)不可靠 它不能保证IP数据报能成功地到达目的地.IP仅提供最好的传输服务.如果发生某种错误,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端.

《TCP/IP详解卷1:协议》——第3章 IP:网际协议(转载)

1.引言 IP是TCP/IP协议族中最核心的协议.所有的TCP.UDP.ICMP及IGMP数据都以IP数据报格式传输.IP提供不可靠.无连接的数据报传送服务. (1)不可靠 它不能保证IP数据报能成功地到达目的地.IP仅提供最好的传输服务.如果发生某种错误,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端.任何要求的可靠性必须由上层来提供(如TCP). (2)无连接 IP并不维护任何关于后续数据报的状态信息.每个数据报的处理是相互独立的.即

在DataWorks中实现指定UDF只能被指定账户访问

在DataWorks中实现指定资源被指定账户访问背景之前写过一篇文章是关于"DataWorks和MaxCompute内部权限体系的区别"有兴趣的朋友可以点击阅读查看详情.但是还是有些同学会问,我如何在DataWorks中实现我的具体某个Resource,Table还是UDF只能被我指定的用户所使用的权限管控.这个UDF可能涉及到数据的加解密算法,属于数据安全管控范围了. 常见方案package方案,通过打包授权进行权限精细化管控.DataWorks上新建角色(管理>MaxComp

nginx 禁止ip访问只允许域名访问

nginx 禁止ip访问只允许域名访问 在nginx 配置文件中,再添加一个server段 server{listen 80 default;return 500;}

linux下通过iptables只允许指定ip地址访问指定端口的设置方法

这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清除预设表filter中使用者自定链中的规则 其次,设置只允许指定ip地址访问指定端口 其次,设置只允许指定ip地址访问指定端口 iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT iptab

iptables只允许指定ip地址访问指定端口

首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清除预设表filter中使用者自定链中的规则 其次,设置只允许指定ip地址访问指定端口 iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 22 -j ACCEPT iptables -A INPUT