禁止IP的函数
程序员文章站
2022-06-06 09:17:02
...
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 if ($i $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 if (ereg("[([0-9] )-([0-9] )]",$maskocts[$i],$regs)) {
if ( ($ipocts[$i] > $regs[2]) || ($ipocts[$i] $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;
}
?>
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 if ($i $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 if (ereg("[([0-9] )-([0-9] )]",$maskocts[$i],$regs)) {
if ( ($ipocts[$i] > $regs[2]) || ($ipocts[$i] $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;
}
?>
下一篇: 初学PHP
推荐阅读
-
想对杰奇小说系统做二次开发,哪位高手知道这个系统数据库里日期函数的算法
-
PHP判断IP并转跳到相应城市分站的方法,ip分站_PHP教程
-
PHP杂谈《重构-改善既有代码的设计》之重新组织你的函数_PHP教程
-
PHP删除Array数组里指定的key(完整版,已封装成函数,附测试代码)_PHP教程
-
PHP中几种输出函数的差别
-
php header函数实现文本文件下载的方法
-
ajax回调函数返回值 处理时eval的有关问题 苦恼人
-
讲解WordPress中用于获取评论模板和搜索表单的PHP函数_php技巧
-
PHP函数in_array()如何检查数组中的值_PHP教程
-
修改Laravel中url()函数生成URL的根地址的方法介绍