php教程

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

我的站长站 2023-10-14 人阅读

代码逻辑思路

同时判断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;
}


相关推荐
  • PHP判断
  • PHP自动识别判断电脑端和手机端代码

    通过判断浏览器的模式来进行页面读取,自动识别判断电脑端和手机端,根据结果跳转访问不同的页面,最后的业务逻辑自己改。代码如下:<?phpfunction is_mobile_request() {$_SERVER[&#39;ALL_HTTP&#39;] = isset($_SERVER[&#39;ALL_HTTP&#39;]) ? $_SERVER[&...

    php教程 12 4个月前
  • PHP判断帝国cms字段加样式

    PHP判断字段加样式主要提供给新手朋友学习,老鸟就不用看了,很简单。<?php if($picfbl}echo&#39;<style>&#39;;if($zilei==!"0"){echo &#39;.leisx ul li a span i{background-position:0 -107px;}&#39;;}if($color==!"0"){echo &#39;.color-table li a...

    帝国cms教程 199 4年前
  • 利用get_headers函数判断链接是否有效或失效

    PHP判断链接是否有效或失效的方法代码,get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在)。函数定义array get_he...

    php教程 112 3年前
最新更新