现在位置:首页 > 网站设计 > 禁止指定省份访问网站php代码(php屏蔽指定地区访问网站方法)

禁止指定省份访问网站php代码(php屏蔽指定地区访问网站方法)

作者:蓝叶 分类:网站设计 时间:2024-01-23 浏览:678

做网站开发时我们可能需要屏蔽一些地区访问,想要禁止指定地区访问网站,可以在nginx里设置规则,也可以使用php来实现屏蔽指定地区访问网站,那么如何使用php禁止指定省份访问网站?php屏蔽指定地区访问网站方法是什么?

禁止指定省份访问网站php代码.png

禁止指定省份访问网站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;
}


免责声明:

本页网址:点击复制分享给朋友吧!

本站分享的一切内容资源如若没有备注,均为蓝叶原创,如需转载请注明出处;如有侵权请与我们联系处理。敬请谅解!

评论列表
挤眼亲亲咆哮开心想想可怜糗大了委屈哈哈小声点右哼哼左哼哼疑问坏笑赚钱啦悲伤耍酷勾引厉害握手耶嘻嘻害羞鼓掌馋嘴抓狂抱抱围观威武给力
提交评论

清空信息
关闭评论
音乐欣赏
返回顶部