禁止IP的函数

<?
function check_ip($range,$ip='') {
if($ip == '') $ip = getenv("REMOTE_ADDR");
if ($ip == "127.0.0.1") return 1;
$result = 1;
if (ereg("([0-9] ).([0-9] ).([0-9] ).([0-9] )/([0-9] )",$range,$regs)) {
$ipl = ip2long($ip);
$rangel = ip2long($regs[1] . "." . $regs[2] . "." . $regs[3] . "." . $regs[4]);

$maskl = 0;

for ($i = 0; $i< 31; $i ) {
if ($i < $regs[5]-1) {
$maskl = $maskl pow(2,(30-$i));
}
}

if (($maskl & $rangel) == ($maskl & $ipl)) {
return 1;
} else {
return 0;
}
} else {

$maskocts = split(".",$range);
$ipocts = split(".",$ip);
for ($i=0; $i<4; $i ) {
if (ereg("[([0-9] )-([0-9] )]",$maskocts[$i],$regs)) {
if ( ($ipocts[$i] > $regs[2]) || ($ipocts[$i] < $regs[1])) {
$result = 0;
}
}
else
{
if ($maskocts[$i] <> $ipocts[$i]) {
$result = 0;
}
}
}
}
return $result;
}

function auth_ip(){
$result = 0;
$null_check = 1;

$path = "ip.cf"; //ip限制配置文件,每行的格式为
/*
xxx.xxx.xxx.xxx 比如 127.0.0.2
xxx.xxx.xxx.[yyy-zzz] 比如 1270.0.0.[2-23]
xxx.xxx.xxx.xxx/nn 比如 127.0.0.0/24
*/
$fg=@fopen($path,"r");

while($line=@fgets($fg,1024)){
$line = trim($line);
$line=ereg_replace("#.*","",$line);
if ($line != ""){
$null_check = 0;
if (check_ip($line)) {
fclose($fg);
return 1;
}
}
}
@fclose($fg);
if ($null_check == 1) return 1;
return $result;
}

?>

时间: 2024-10-03 00:26:22

禁止IP的函数的相关文章

ASP取得客户端IP地址函数

ASP取得访问者真实IP地址函数  Private Function getIP()  Dim strIPAddr  If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" Or InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then   strIPAddr = Reque

asp.net(vb.net)获取真实IP的函数

aspx vb.net获取真实IP的函数如下: 复制代码 代码如下: <script runat="server"> Public Function CheckIp(ByVal ip As String) As Boolean Dim pat As String = "^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$" Dim reg As Regex = New Regex(pat) if ip = "

asp下实现IP限制函数代码_应用技巧

IP限制函数 大家如果还有好的建议算法,就联系我!!:) "****************************** "Function CheckIp(cInput_Ip,cBound_Ip) "Created by qqdao, qqdao@263.net 2001/11/28 "说明:首先需要根据;号循环,然后判断是否含有"-",如果有则进行拆分处理,最后判断是否在范围内 "参数: cInput_Ip,代检查的ip "

asp下取得客户端IP地址函数 转换IP地址函数_应用技巧

<% '****************************** '函数:Userip() '参数:无 '作者:阿里西西 '日期:2007/7/12 '描述:取得客户端IP地址 '示例:<%=Userip()%> '****************************** Function Userip() Dim GetClientIP '如果客户端用了代理服务器,则应该用ServerVariables("HTTP_X_FORWARDED_FOR")方法 G

禁止IP访问网站的多种方法分享(linux,php,nginx,apache)_服务器其它

PHP禁止某个IP或IP段访问 废话不多说,客官请看: <? //禁止某个IP $banned_ip = array ( "127.0.0.1", //"119.6.20.66", "192.168.1.4" ); if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) ) { die ("您的IP禁止访问!"); } //禁止某个IP段 $ban_ran

禁止IP访问网站的各种方法(linux,php,nginx,apache)

PHP禁止某个IP或IP段访问 废话不多说,客官请看:  代码如下 复制代码 <?    //禁止某个IP $banned_ip = array ( "127.0.0.1", //"119.6.20.66", "192.168.1.4" ); if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) ) { die ("您的IP禁止访问!"); } //禁止

asp.net(vb.net)获取真实IP的函数_实用技巧

aspx vb.net获取真实IP的函数如下: 复制代码 代码如下: <script runat="server"> Public Function CheckIp(ByVal ip As String) As Boolean Dim pat As String = "^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$" Dim reg As Regex = New Regex(pat) if ip = "

详解CentOS下Nginx如何禁止IP访问_Linux

我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦. 就可以这样

Nginx禁止IP访问配置方法

#禁止IP访问  代码如下 复制代码 server { listen 80 default; server_name _; return 500; } 或者 server { listen 80 dufault; server_name _; rewrite ^(.*) http://www.111cn.net permanent; } 最关键的一点是,在server的设置里面添加这一行:listen 80 default;后面的default参数表示这个是默认虚拟主机