美文网首页
wordpress 禁止国外ip访问

wordpress 禁止国外ip访问

作者: wj_39ed | 来源:发表于2020-08-31 11:14 被阅读0次

一般做国内站,国外ip都是来攻击或撞库的,没有国外用户的需求,就可以在进入网站时进行ip检查,如果是国外ip就禁止访问

阿里提供了一个查询ip归属的接口,可以用来获取当前ip的真实地址,但对访问速度会有一定影响

以下内容放到主题的function.php中

/**
* WordPress 显示评论者IP归属地PHP函数
* https://www.aliuyun.cn/wordpress/wordpress-course/management/jinzhi-waiguo-ip.html
**/
function aliuyun_getRealIp()
{
  $ip=false;
  if(!empty($_SERVER["HTTP_CLIENT_IP"])){
    $ip = $_SERVER["HTTP_CLIENT_IP"];
  }
  if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    for ($i = 0; $i < count($ips); $i++) {
      if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
        $ip = $ips[$i];
        break;
      }
    }
  }
  return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
 
function aliuyun_locate($ip) {
    $ip=aliuyun_getRealIp();
    if(empty($ip)) $ip = get_comment_author_IP();
    $ch = curl_init();  
    $timeout = 5;  
    curl_setopt ($ch, CURLOPT_URL, 'http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);  
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);  
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);  
    $file_contents = curl_exec($ch);  
    curl_close($ch);  
    $result = json_decode($file_contents,true);
    if ($result['data']['country'] != '中国') {
        wp_redirect( 'https://www.aliuyun.cn/aliuyun-news/womenshizhongguoren.html' );
    } else {
        echo '';
    }
}
add_action( 'wp_footer', 'aliuyun_locate' );

最后if判断那里直接使用的是阿里的页面,也可以改成自定义的

相关文章

  • wordpress 禁止国外ip访问

    一般做国内站,国外ip都是来攻击或撞库的,没有国外用户的需求,就可以在进入网站时进行ip检查,如果是国外ip就禁止...

  • nginx禁止国外ip访问

    在conf.d中加入如下配置文件并重启 allowip.conf 注意: 1.启动的时候有warn,可以忽略 2....

  • 配置nginx禁止国外IP访问

    1、拉取geoip2模块编译到nginx 。 查看nginx编译参数,添加geoip2模块重新编译。 备份旧的ng...

  • nginx配置

    server下设置通过域名访问,禁止ip访问 参考

  • nginx 限制ip访问规则

    nginx 限制ip访问规则 禁止/允许 单个IPdeny/allow IP 禁止/允许 所有IPdeny/all...

  • ngxin禁止ip访问

    在配置文件的最底部添加一下代码

  • nginx 禁止ip 访问

    在 default中加入

  • Lnmp:更换lnmp下载镜像

    因vpser.net 域名被认证,如果出现国内访问解析到国外IP或者国外访问解析到国内IP的情况,就会出现"Rea...

  • 彻底禁止某IP访问Linux

    彻底禁止某IP访问: #屏蔽单个IP的命令是 iptables-IINPUT-s123.45.6.7-jDROP ...

  • 关于代理ip与网络爬虫

    为什么我们的ip会被网站禁止访问了呢?网站禁我们ip的理由是什么? 网站封禁IP的理由就是后台查看该IP的访问次数...

网友评论

      本文标题:wordpress 禁止国外ip访问

      本文链接:https://www.haomeiwen.com/subject/ajrusktx.html