您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

php判断ip黑名单程序代码

2024/4/24 0:15:56发布3次查看
学校的新闻系统要求有些新闻只开放校内ip浏览,于是重写了一个代码来实现此功能,实现后的结果是,只要把允许访问的ip列入ip.txt这个文件中即可,同时支持c类ip,例如:
ip.txt 192.168 211.67.188 211.67.191.25
php实例代码如下:

上面大家可以使用代码来骗过了,下面代码进行升级:
$v) { if (!strstr($v, -)) { $preg_limit.= makepregip($v); } else { $aipnum = explode(-, $v); for ($i = $aipnum[0]; $i block_ip) { foreach ($this->block_ip as $k => $v) { $ipaddres = $this->makepregip($v->start_ip); $ip = str_ireplace(., ., $ipaddres); $ip = str_replace(*, [0-9]{1,3}, $ip); $ipaddres = / . $ip . /; $ip_list[] = $ipaddres; } } return $ip_list; } public function checkip() { $iptable = $this->getallblockip(); $isjoined = true; //取得用户ip $ip = $this->get_client_ip(); $ip = trim($ip); //剔除黑名单中的ip区段 if ($iptable) { foreach ($iptable as $value) { if (preg_match({$value}, $ip)) { $isjoined = false; break; } } } // 如果在ip黑名单中就执行如下操作 if (!$isjoined) { echo ip error; exit; } } private function get_client_ip() { if (getenv(http_client_ip) && strcasecmp(getenv(http_client_ip) , unknown)) $ip =
getenv(http_client_ip);
else if (getenv(http_x_forwarded_for) && strcasecmp(getenv(http_x_forwarded_for) , unknown)) $ip = getenv(http_x_forwarded_for);
else if (getenv(remote_addr) && strcasecmp(getenv(remote_addr) , unknown)) $ip = getenv(remote_addr);
else if (isset($_server['remote_addr']) && $_server['remote_addr'] && strcasecmp($_server['remote_addr'], unknown)) $ip = $_server['remote_addr'];
else $ip = unknown;
return ($ip);
}
}
?>
引用片段,代码如下:
$oblock_ip = new block_ip(); $oblock_ip->checkip();
教程链接:
随意转载~但请保留教程地址★
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录