做网站开发时我们可能需要屏蔽一些地区访问,想要禁止指定地区访问网站,可以在nginx里设置规则,也可以使用php来实现屏蔽指定地区访问网站,那么如何使用php禁止指定省份访问网站?php屏蔽指定地区访问网站方法是什么?
禁止指定省份访问网站php代码,复制下方代码到你需要的地方,然后修改省份名称,当访问者的ip属于指定的省份则显示404状态,代码只是简单例子,如需设置指定省份可访问,可修改下判断条件。
<?php /* * 禁止指定省份访问网站 * author:蓝叶 * url:lanye.org */ $ip = getClientIP(); $ipdat = CurlIP($ip); $ipjson = json_decode($ipdat,1); $ipdizhi = $ipjson['province']; if($ipdizhi && preg_match('/(陕西|山西|广东)/', $ipdizhi)){ header("HTTP/1.1 404 Not Found"); header("Status: 404 Not Found"); exit(); } function CurlIP($ip){ $url = "https://restapi.amap.com/v3/ip?key=0113a13c88697dcea6a445584d535837&ip=".$ip; $curl = curl_init(); $headers = array( "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36 ", ); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_HTTPHEADER,$headers); curl_setopt($curl, CURLOPT_REFERER, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $response = curl_exec($curl); curl_close($curl); return $response; } function getClientIP(){ if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_X_FORWARDED')) { $ip = getenv('HTTP_X_FORWARDED'); } elseif (getenv('HTTP_FORWARDED_FOR')) { $ip = getenv('HTTP_FORWARDED_FOR'); } elseif (getenv('HTTP_FORWARDED')) { $ip = getenv('HTTP_FORWARDED'); } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; }
免责声明:
本页网址:点击复制分享给朋友吧!
本站分享的一切内容资源如若没有备注,均为蓝叶原创,如需转载请注明出处;如有侵权请与我们联系处理。敬请谅解!