我使用多年的广告拦截器数据库随着时间的推移变得非常臃肿,现在它充满了许多过时的域名(有些甚至无效)。我想精简它,但我不知道如何最好地做到这一点。
我尝试创建一个批处理文件来解析文件并 ping 每个域,然后根据错误级别将域名写入live
或dead
文件。这是一个不错的解决方案,但它至少有几个问题:
- 它不考虑丢弃 ping 的服务器
- 即使使用了
-n 1
和-w 1000
开关,许多域仍然需要 10 秒才能超时 - 它每次只测试一个,因此可能需要很长时间才能完成
有人对如何测试域名列表是否有效有什么建议吗?要求:
- 解决方案是命令行还是 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