java nslookup反查IP验证google、百度、bing蜘蛛爬虫IP真假

作者: ʘᴗʘ发布时间:2021-11-22 14:29 浏览量:112 点赞:86 售价:0

需求简介

互联网上有很多恶意扫描工具,会冒充常见搜索引擎的user-agent来扫描目标网站的漏洞。同时,作为站长往往害怕屏蔽恶意IP的时候“误杀”搜索引擎IP。本站随着建站时间逐渐增长,恶意扫描也变得越来越多,所以急需一个方案能够识别那些假冒搜索引擎user-agent的恶意扫描IP。

技术原理

技术很简单,就是利用nslookup等命令,检查携带搜索引擎user-agent的IP,是否真的是搜索引擎的官方IP。百度官方的相关文档:通过反查IP验证百度蜘蛛IP真假

Java验证爬虫IP代码

一、引入所需Jar包

因为在不同的操作系统上,反查IP的命令是不同的,所以最简单的办法是引入一个成熟的Java dns库,这里我们推荐dnsjava,maven引入代码如下:

<dependency>
    <groupId>dnsjava</groupId>
    <artifactId>dnsjava</artifactId>
    <version>3.4.2</version>
</dependency>

二、java nslookup反查IP

引入dnsjava后,我们只需一行代码,即可反查IP对应的name。直接上代码:

public static void main(String[] args) throws Exception {

    //真实百度蜘蛛IP
    String hostName = Address.getHostName(InetAddress.getByName("220.181.108.75"));
    System.out.println(hostName);

    //虚假百度蜘蛛IP
    hostName = Address.getHostName(InetAddress.getByName("183.188.169.224"));
    System.out.println(hostName);
}

上面的代码运行结果如下:

https://baiduspider-220-181-108-75.crawl.baidu.com./
https://224.169.188.183.adsl-pool.sx.cn./

观察结果我们可以发现,真正的百度蜘蛛爬虫的IP,反查结果是可以看到百度的域名的。所以,通过该方法,每当有携带搜索引擎user-agent的ip访问我们的网站时,都可以通过上述办法反查IP,验证IP是否合法。

考虑到反查IP的耗时相对较长,所以如果要在项目中使用该功能,建议做成异步执行的,避免影响网站响应时间。

版权声明:《java nslookup反查IP验证google、百度、bing蜘蛛爬虫IP真假》为CoderBBB作者「ʘᴗʘ」的原创文章,转载请附上原文出处链接及本声明。

原文链接:https://www.coderbbb.com/articles/42

其它推荐:

user

ʘᴗʘ

77
文章数
52605
浏览量
41988
获赞数
67.80
总收入