来源:深圳网站建设| 时间:2025-03-18| 浏览次数: | 文章标签:禁止国内IP访问
一、利用 IP 地址进行判断并屏蔽 另外,为了防止国外调用 ip.taobao.com 的判断国家地区的 getIpInfo.php 文件速度慢,最好在上面代码下面再加一行 dns 预解析代码,加快载入文件。
假设你要屏蔽国内同行的 IP 访问(同样地,你自己也只能代理方式访问了)。首先你必须有个判断 GEO IP 的模块。在 VPS 上你可以在 nginx 上安装 geo ip 模块,但是安装和使用上还是麻烦了点。并且,如果你用的是虚拟主机,那就无法自己随心所欲安装扩展模块了。
所以,我们可以借用第三方 IP库的 API 接口。比如淘宝的 IP 库,IP138 的 IP 库等等,判断都非常准确。具体代码:<?php
$verification1 = '中国'; //需要屏蔽国家名称1
$verification2 = '摩洛哥'; //需要屏蔽的国家名称2。这里可以类似的方式,定义多个国家。
function get_visitor_ip() {
$ip = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_X_REAL_FORWARDED_FOR']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_REAL_FORWARDED_FOR'];
}
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
return $ip;
}
$ip = get_visitor_ip(); //获取访客IP
$result = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip); //IP数据库来自淘宝。你也可以换成 IP138 的。建议默认。
$address = json_decode($result,true);
//判断访客的IP是否来自国家1或国家2
if($address['data']['country'] == $verification1 || $address['data']['country'] == $verification2){ //如果只需要屏蔽国家名称1,这里无需修改,把开头的国家名称2'摩洛哥'改成某个不存在的名称即可,如'冥王星'。
header("location: https://www.baidu.com");
exit();
}
?>
把这部分代码粘贴到你的主题文件夹下面 Header.php 文件里标签的上方。保存。<link rel="dns-prefetch" href="//ip.taobao.com">
(题外话:如果你还是担心淘宝库慢,需要国外的 ip 库 API,也可以去国外 ip 库提供商注册获取 API Key,然后再修改上面的相应代码来更换。建议有技术背景的人可以弄,新手绕过)
深圳网站建设公司地址:深圳市龙岗区平湖街道花半里欣悦广场A栋2302 | 深圳做网站电话:15811826684 谭生
华专网络网站建设服务品牌 | 深圳市华专网络科技有限公司 Copyright 2025,ALL Rights Reserved huazhuan.com.cn | © Copyright 2008-2025 版权所有
专家团队为您提供深圳网站建设,外贸网站建设,深圳响应式网站建设,深圳营销型网站制作等服务,深圳建网站就找华专网络!
网站建设地图 | 龙岗网站建设 | 深圳外贸网站建设
互联网经营许可:粤ICP备14058234号
公安备案号:44030702002758