使用PHP代码限制只允许国内IP地址访问网站

2023-09-15 0 845

正文:

实现原理是通过使用 IP 地址查询来识别国家地区,并结合浏览器语言判断。

以爱奇艺的 IP 查询接口为例,当 IP 地址所属国家为中国或者浏览器语言设置为中文时,禁止访问。

$ipaddress = $_SERVER['REMOTE_ADDR'] == '::1' ? '127.0.0.1' : $_SERVER['REMOTE_ADDR'];
$lang = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
$login_addr_arra = json_decode(file_get_contents('https://apis.map.qq.com/ws/location/v1/ip?output=json&key=2J5BZ-V6JK4-SHSUT-XGMGV-VRHM7-TBFKU&ip='.$ipaddress));
$country = $login_addr_arra->result->ad_info->nation;
if((!empty($country) && $country == '中国') || strstr($lang, 'zh'))
{
header("ip 地址为中国");
echo 'ip 地址为中国';
exit;
}

wordpress 程序只需将以下代码添加到根目录下的 index.php 文件的第二行:

这样,只有当访问者的 IP 地址不是国内 IP 地址且浏览器语言不是中文时,才会禁止访问。

$ipaddress = $_SERVER['REMOTE_ADDR'] == '::1' ? '127.0.0.1' : $_SERVER['REMOTE_ADDR'];
$lang = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
$login_addr_arra = json_decode(file_get_contents('https://apis.map.qq.com/ws/location/v1/ip?output=json&key=2J5BZ-V6JK4-SHSUT-XGMGV-VRHM7-TBFKU&ip='.$ipaddress));
$country = $login_addr_arra->result->ad_info->nation;
if(($country !== '中国') && !strstr($lang, 'zh'))
{
header("ip 地址为国外");
echo 'ip 地址为国外';
exit;
}

 

本文章已结束,如转载请注明:汇站网 » 使用 PHP 代码限制只允许国内 IP 地址访问网站

收藏 (0)

微信支付 微信扫一扫

支付宝支付 支付宝扫一扫

打赏二维码
点赞 (0)

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

联系官方客服

为您解决烦忧 - 24小时在线 专业服务