php教程

php判断用户IP地址和语言,禁止用户访问网站

php教程 51源码 2024-04-01 人阅读

代码逻辑思路

同时判断IP地址和用户语言可以更好的限制指定国家用户访问网站,大大限制的dai理用户破解方法。

PHP判断用户的IP地址,就需要先获取到用户的IP,然后利用第三方IP库,来获取到IP地址的归属地,最后就是判断IP归属地,判断是否需要限制访问了。

判断用户语言就非常简单了,只需获取到浏览器的HTTP_ACCEPT_LANGUAGE即可。

获取用户IP和语言代码:

$ipaddress = $_SERVER['REMOTE_ADDR'] == '::1' ? '127.0.0.1' : $_SERVER['REMOTE_ADDR'];
$lang = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);

第三方IP库获取归属地代码:

$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;
}

完整代码

$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;
}


版权声明:文章搜集于网络,如有侵权请联系本站,转载请说明出处:https://www.51yma.cn/jiaocheng/php/1447.html
文章来源:
标签 PHP判断