PHP网站如何屏蔽国外的IP

PHP网站如何屏蔽国外的IP,第1张

你好,若是屏蔽一定范围的IP地址段,你可以通过修改虚拟主机的htaccess去屏蔽,order allow,deny

deny from 38.99.82.191/271

allow from all

若是某一特定IP,你可以通过$_SERVER['HTTP_REFERER']获取登录你网站的IP地址,然后if(ip == $_SERVER['HTTP_REFERER']),然后跳转到某一特定页面,希望对你有所帮助!

<?phpfunction check_ip($range,$ip='') {if($ip =='') $ip = getenv("REMOTE_ADDR")if ($ip == "127.0.0.1") return 1$result = 1if (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 = 0for ($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.txt"//ip限制配置文件,每行的格式为/*xxx.xxx.xxx.xxx 比如 127.0.0.2xxx.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 = 0if (check_ip($line)) {fclose($fg)return 1}}}@fclose($fg)if ($null_check == 1) return 1return $result}?><?phpsession_start()if($_SESSION['up2ugg_admin']<>"up2ugg_admin"){if(auth_ip()){?>document.write("<script>window.location.href=\"}}?>

这个屏蔽核心点为识别用户所在的区域,不知你指的区域是什么,如果是国家的话

可以通过其IP识别其国家信息,然后拒绝掉或是进行跳转就行了,这样就达到了屏蔽另一个地区人访问的问题了

关于PHP如何得到访问者的国家或IP的国家可以参考:

http://snowcoal.com/article/324.html


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/382405.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存