专栏首页用户4667108的专栏如何判断蜘蛛的真实性

如何判断蜘蛛的真实性

前言

最近又想挖坑了,由于开发的网页模板计划对seo极差,只能单独给出seo页面,但是为了避免滥用,我们也要考虑很多事情那我们又要如何判断蜘蛛是否就是真的蜘蛛呢?

调查文档

网上的大多数方法是根据ua进行判断,我突然想起一个api站点,使用nslookup反查dns来获取蜘蛛是否真实,等等?nslookup是啥? 域名反向解析 让度娘来给你科普下

原理

通过nslookup反向解析蜘蛛ip后我们可以得到域名,通过域名我们可以验证

整理实现

通过测试 nslookup 之后我们获取的是一个固定的主域的子域名,那我们只需要nslookup反查后对其主域进行判断就可以鉴别了。

优化

虽说这种方法看起来不错,但是在实际使用中我的建议 1.先进行ua判断 2.验证有无nslookup缓存 有则真 无则进入3 3.进入nslookup反查 并缓存 这样的好处是速度快 耗时短 对用户优化不错 对攻击者也好防御

贴上部分php代码

获取根域名

     /**
    * 取得根域名
    * @param type $domain 域名
    * @return string 返回根域名
    */
    function GetUrlToDomain($domain) {
$re_domain = '';
$domain_postfix_cn_array = array("com", "net", "org", "gov", "edu", "com.cn", "cn");
$array_domain = explode(".", $domain);
$array_num = count($array_domain) - 1;
if ($array_domain[$array_num] == 'cn') {
    if (in_array($array_domain[$array_num - 1], $domain_postfix_cn_array)) {
        $re_domain = $array_domain[$array_num - 2] . "." . $array_domain[$array_num - 1] . "." . $array_domain[$array_num];
    } else {
        $re_domain = $array_domain[$array_num - 1] . "." . $array_domain[$array_num];
    }
} else {
    $re_domain = $array_domain[$array_num - 1] . "." . $array_domain[$array_num];
}
return $re_domain;
  }

核心函数

 gethostbyaddr()
 参数为ip地址 
 返回反查域名

主域资料

//baidu.com 百度蜘蛛 //ny.adsl 360蜘蛛 //googlebot.com 谷歌蜘蛛 //sogou.com 搜狗 //yahoo.com 雅虎 //sm.cn 神马 //bytedance.com 今日头条 //msn.com 必应 这些就是取出蜘蛛nslookup反查域名的主域名部分列表

   例子  php 通过这个api可以反查ip        https://jxwvyc549.hk03.horainwebs.top/s.php?ip=IP地址

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网站监控轻量源码

    最近也试了很多网页监控源码,但是都很差,但是我今天就要推荐另一款由coxxs开发的,监控由第三方实现仅需注册添加网站或者ip。

    乔千
  • 网站pjax后统计浏览量极少问题

    这不最近刚装上了这个博客,博客的主题是 handsome, 然后最近我发现百度统计有点不正常,主动提交收录也是抽风。

    乔千
  • 在文章中插入超美的音乐播放插件开发记录

    是不是有点复杂呢?而且鸡肋呢?没错下一款插件我就准备推出 mokplayer 实现 typecho 遗留问题 音乐播放

    乔千
  • 我们分析了400位歌手的歌词,发现了华语音乐的秘密

    “香槟酒起满场飞,钗光槟影晃来回,爵士乐声响,跳桑巴才够味,”三四十年代张帆的一曲《满场飞》,成了“十里洋场”大上海上流社会醉生梦死的缩影;

    CDA数据分析师
  • Jmeter(二十四)_服务器性能监控

    1、访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件。其中JMeterPlugins-Standard和J...

    飞天小子
  • Node.js真的无所不能?那些不适用的应用领域分析

    Node.js是一个服务器端JavaScript解释器,底层采用的还是libevent;它的目标是帮助程序员构建高度可伸缩的应用程序,目前对Node.js 的采...

    李海彬
  • Node.js真的无所不能?那些不适用的应用领域分析

    Node.js是一个服务器端JavaScript解释器,底层采用的还是libevent;它的目标是帮助程序员构建高度可伸缩的应用程序,目前对Node.js 的采...

    李海彬
  • SpringMVC:数据绑定入门(二)

    1.为了实现所输入的数据格式与所需要的匹配该如何做到?例如:http://localhost:8080/date1.do?date1=2018-01-01,其中...

    Dar_Alpha
  • 情人节到了,Postman 都脱单了,那你咧?

    通过它可以完成 Http 接口的调试,测试同学也可以基于此做一些自动化测试。另外 Postman 还提供其他高级功能,不过需要另外收费,毕竟商业公司还是要恰饭啊...

    andyxh
  • Swift 基本语法04-"switch"和"for"

    用户1890628

扫码关注云+社区

领取腾讯云代金券