欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

php教程

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

php教程 我的站长站 2023-10-14 共15人阅读

代码逻辑思路

同时判断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判断
  • PHP自动识别判断电脑端和手机端代码

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

    php教程 15 7个月前
  • 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教程 211 5年前
  • 利用get_headers函数判断链接是否有效或失效

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

    php教程 117 3年前
  • PHP如何判断远程图片文件是否存在

    <?php $url = 'http://127.0.0.1/test.jpg'; if( @fopen( $url, 'r' ) ) { echo 'File Exits'; } else { echo 'File Do Not Exits';} ?>具体应用大家自行修过,url为图片路径

    php教程 86 4年前
  • 帝国常用的PHP判断语法集合

    默认内容页帝国cms判断方法<?phpif($navinfor[befrom]){?><p>来源:&#091;!--befrom--]</p><?php}?>利用PHP语法输出判断结果<?phpif($navinfor[befrom]){echo"来源:".$navinfor[befrom];}?><?phpif($navinfor[befrom]){echo"来源:".ReplaceBefrom($...

    帝国cms教程 139 3年前