WordPress屏蔽禁止某个城市ip访问防止爬虫导致内存占满原创文章

玩技站长 运维笔记评论87字数 2520阅读模式
使用场景:

最近网站被河南郑州大批量爬虫,导致cpu和内存100%网站负载100%,分析了网站访问日志,发现大量的爬虫采集程序访问网站,手段是通多采集插件或者爬虫软件对网站文章和路径大批量访问get请求。

适用场景:

单一城市代理ip地址重复get网站,可以针对某个城市的请求进行禁止,可以封锁一段时间后观察网站日志,选择合适的时间放开即可。文章源自玩技e族-https://www.playezu.com/711609.html

文章源自玩技e族-https://www.playezu.com/711609.html

(爬虫使用代理爬取网站文章和热词内容)文章源自玩技e族-https://www.playezu.com/711609.html

百度相关:(查询的大部分结果类似)

通过百度找到了大量的想关于该类的禁止方式和方法此方式已不再适用,相关代码展示如下:文章源自玩技e族-https://www.playezu.com/711609.html

<?php
/**
 *
 * test.php(屏蔽国家IP)
 *
 */
$verification = '美国';//需要屏蔽国家的IP
function get_client_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_client_ip();//获取访客IP
$antecedents = $_SERVER['HTTP_REFERER'];//访客来路地址
$result = file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".$ip);//IP数据库来自淘宝。
$address = json_decode($result,true);
//判断访客是否属于美国,是否来自百度,是否来自谷歌
if($address['data']['country'] == $verification && strpos($antecedents, 'baidu') === false && strpos($antecedents, 'google') === false){
        sleep(10);//设置一个10秒等待。
        header('HTTP/1.1 503 Service Temporarily Unavailable');
        header('Status: 503 Service Temporarily Unavailable');
        header('Retry-After: 3600000');
        exit;
}
?>

原因是因为淘宝提供的api已经停止了。文章源自玩技e族-https://www.playezu.com/711609.html

文章源自玩技e族-https://www.playezu.com/711609.html

(源接口请求访问已无法正常打开)文章源自玩技e族-https://www.playezu.com/711609.html

文章源自玩技e族-https://www.playezu.com/711609.html

(淘宝官方通知下线通告)文章源自玩技e族-https://www.playezu.com/711609.html

百度地图:

思路:因为百度提供了相关的地址查询服务,不过需要自己注册和认证下。认证过后需要自己创建和申请创建应用:点我前往>>>文章源自玩技e族-https://www.playezu.com/711609.html

TIPS:

1、只有IP白名单内的服务器才能成功发起调用格式: 202.198.16.3,202.198.0.0/16 填写IP地址或IP前缀网段,英文半角逗号分隔如果不想对IP做任何限制,请设置为0.0.0.0/0 (谨慎使用,AK如果泄露配额会被其用户消费,上线前可以用作Debug,线上正式ak请设置合理的IP白名单)

2、因新系统升级,自公告之日起,“服务端AK”不再支持浏览器端使用;在浏览器端使用,请选择“浏览器端AK”,例如JavaScript API只支持浏览器类型AK。
对于以前申请的服务端AK,不变更即不受影响,仍支持浏览器端使用;如更新老的服务端AK,再次保存,则按新创建AK处理,不再支持浏览器端使用。

使用方法:

可以将上面的代码请求地址改为:https://api.map.baidu.com/location/ip?ak=应用ak&ip={$ip}

需要将申请创建下来的应用ak填写在上面。

本站方式:

将下述代码放在主题的function.php下即可使用:(百度地图api方式)

此内容查看价格为50立即购买(终身会员免费)
注意:源码一经出售不退不换介意勿拍,如涉及版权问题请及时与站长联系
 最后更新:2023-3-3
  • 版权提示:本站仅供存储任何法律责任由作者承担▷诈骗举报◁▷新闻不符◁▷我要投稿◁
    风险通知:非原创文章均为网络投稿真实性无法判断,侵权联系2523030730
    免责声明:内容来自用户上传发布或新闻客户端自媒体,切勿!切勿!切勿!添加联系方式以免受骗。
  • 原创转载:https://www.playezu.com/711609.html
    转载说明: 点我前往阅读>>>
匿名

发表评论

匿名网友
确定