陌路寒暄

  • 笔记
  • WEB
  • 随笔
  • 访客墙
  • 友情链接
  • 关于
Kratos
这让人揪心的代码
  1. 首页
  2. WEB
  3. 正文

利用PHP(rDNS)判别搜索引擎蜘蛛真假

2018年11月29日 13459点热度 18人点赞 9条评论

仅仅通过UA来判断来访者是不是蜘蛛肯定是不行的,那只是请求中的一个字段而已,想填写什么都行,从国内的几个搜索引擎来说,只有360把自家蜘蛛服务器的ip地址段公布了出来,其他并不提供自家服务器的IP,不过都提供了另一个方法,那就是用rDNS来验证。

PHP有个函数,可以通过IP来反查域名,gethostbyaddr($ip) ,如果没有查到对应的域名就会返回输入的参数,也就是我们提供的IP;

并且,蜘蛛IP的rDNS都是有规则的,所以可以有以下代码:

<?php
$ua="Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)";
$ip="220.181.108.103";
function getrdns($ip)
{
        return gethostbyaddr($ip);
}
function reip($ip)
{
        return str_replace(".","-",$ip);
}
function chekrdns($ua,$ip)
{
        if(stripos($ua,"Baiduspider")!==false)
        {
                return getrdns($ip)==("baiduspider-".reip($ip).".crawl.baidu.com");
        }
        else if(stripos($ua,"Sogou web spider")!==false)
        {
                return getrdns($ip)==("sogouspider-".reip($ip).".crawl.sogou.com");
        }
        else if(stripos($ua,"Googlebot")!==false)
        {
                return getrdns($ip)==("crawl-".reip($ip).".googlebot.com");
        }
        else if(stripos($ua,"bingbot")!==false)
        {
                return getrdns($ip)==("msnbot-".reip($ip).".search.msn.com");
        }
        else if(stripos($ua,"Mediapartners")!==false)
        {
                return getrdns($ip)==("rate-limited-proxy-".reip($ip).".google.com");
        }
        else if(stripos($ua,"PetalBot")!==false) //华为-花瓣搜索
        {
                return getrdns($ip)==("petalbot-".reip($ip).".aspiegel.com");
        }
        else
        {
                return false;
        }
}
echo chekrdns($ua,$ip);
?>

我这里写了百度,搜狗,必应,谷歌和谷歌ads的判别(IP和UA自行获取),360并没有特定的rDNS(查了一下都是什么什么宽带),不过可以直接通过IP段判定,可以到360站长平台自己去找。

标签: PHP rDNS 蜘蛛
最后更新:2021年2月26日

jlqwer

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

jlqwer

当前 -人在线,共打开 -个页面

最新 热点 随机
最新 热点 随机
Ubuntu24.04更换源地址(新版源更换方式) Ubuntu下PHP安装imagick拓展报错 悬浮窗计时器组件 Ubuntu 重启后 ufw状态变为inactive问题 悬浮窗倒计时组件 linux下去除不可见字符“&;#65279”
Ubuntu24.04更换源地址(新版源更换方式)
Python3引发的“血案” [维护笔记]Let’s Encrypt 证书更新错误 title html js 动态魔方 Ubuntu Apache 切换到php-fpm+mpm_event模式 SpaceSniffer-磁盘存储空间可视化管理
友情链接
  • 范明明 范明明
  • 援军 援军
  • 搜索引擎蜘蛛鉴别 搜索引擎蜘蛛鉴别
  • 深海小涛 深海小涛
  • 诗酒趁年华 诗酒趁年华
  • 翔哥奇思妙想 翔哥奇思妙想
  • 千千 千千
  • 简忆博客 简忆博客
  • Caid Blog Caid Blog
  • 老董 老董
  • 搜索引擎蜘蛛IP大全
  • Aidea资讯脉动 Aidea资讯脉动
  • 简忆工具箱 简忆工具箱

COPYRIGHT © 2025 陌路寒暄. ALL RIGHTS RESERVED. Theme Kratos Made By Seaton Jiang

鲁公网安备 37131202371485号 | 鲁ICP备16042736号-1 | doNotClick