正文:
实现原理是通过使用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地址访问网站


常见问题
相关文章
猜你喜欢
- 禁止用户访问网站地图,但允许搜索引擎爬虫访问的代码 2023-09-22
- 如何利用HTML代码来优化SEO效果 2023-09-21
- 保障网站安全,采用HTTPS加密 2023-09-20
- 响应式/自适应网站在百度友好的优化方面发挥着重要作用 2023-09-20
- 宝塔迁移网站时出现错误:404,您所请求的文件不存在! 2023-09-15
- 使用PHP代码限制只允许国内IP地址访问网站 2023-09-15
- 宝塔面板(BT)安全:优化网站访问速度和简单实施CC防护措施 2023-09-14
- Web网站常见应用攻击类型与防御措施 2023-09-13
- 如何关闭Mysql打开的3306端口以防止系统遭到入侵 2023-09-13
- nginx下配置网站防盗链教程 2023-09-02