做网站开发时我们可能需要屏蔽一些地区访问,想要禁止指定地区访问网站,可以在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;
}
免责声明:
本页网址:点击复制分享给朋友吧!
本站分享的一切内容资源如若没有备注,均为蓝叶原创,如需转载请注明出处;如有侵权请与我们联系处理。敬请谅解!