批量测试域名的高效方法

批量测试域名的高效方法

我使用多年的广告拦截器数据库随着时间的推移变得非常臃肿,现在它充满了许多过时的域名(有些甚至无效)。我想精简它,但我不知道如何最好地做到这一点。

我尝试创建一个批处理文件来解析文件并 ping 每个域,然后根据错误级别将域名写入livedead文件。这是一个不错的解决方案,但它至少有几个问题:

  1. 它不考虑丢弃 ping 的服务器
  2. 即使使用了-n 1-w 1000开关,许多域仍然需要 10 秒才能超时
  3. 它每次只测试一个,因此可能需要很长时间才能完成

有人对如何测试域名列表是否有效有什么建议吗?要求:

  • 解决方案是命令行还是 GUI 并不重要
  • 我不是担心错过一些丢弃 ICMP 的服务器(时间更重要)
  • 它不应该测试一次设置多个,否则我的 ISP 不会高兴(最好是可配置的)

答案1

我可以建议使用 python 吗?当我回到我的电脑时,我会用测试过的代码更新这个答案,但它看起来像

import requests
with open("blocklist.txt", "r") as f:
    for n in f.readLines():
        r = requests.get(n)
        if r.status_code == 200:
            m = open("good.txt", "a")
            m.write(n)
            m.close()
        else:
            m = open("bad.txt", "a")
            m.write(n)
            m.close()

blocklist.txt 内容如下:

google.com
testrgdjhdhdhdhhdh.com
example.com

和 good.txt:

google.com
example.com

坏.txt:

testrgdjhdhdhdhhdh.com

相关内容