跳转到主要内容

Net::DNS - 将域名解析为 IP 地址的爬虫工具

爬虫工具概览

爬虫工具概览Net::DNSNet::DNS – 收集域名的 DNS 记录。自动批量解析域名库,检查域名可用性。

A-Parser 的功能允许保存 Net::DNS 爬虫工具的抓取设置以便后续使用(预设),设置数据抓取计划等等。

得益于内置强大的模板引擎 Template Toolkit,可以按您需要的形式和结构保存结果,该引擎允许对结果应用额外逻辑,并以各种格式输出数据,包括 JSON、SQL 和 CSV

采集数据

  • IP 地址列表
  • 请求成功时使用的 DNS 服务器
  • 任意类型的 DNS 记录(以 JSON 形式输出,从而可以方便地获取其各个参数)

应用场景

  • 域名库解析
  • 域名可用性检查

查询

需要指定域名列表作为查询,例如:

a-parser.com  
yandex.ru
google.com
vk.com
facebook.com
youtube.com

结果输出示例

得益于内置的模板引擎 Template Toolkit,A-Parser 支持灵活的结果格式化,使其能够以任意形式以及结构化形式(如 CSV 或 JSON)输出结果。

默认输出

结果格式:

$query: $ip ($ips.format('$ip, '))\n

结果中显示了域名及其 IP 地址:

youtube.com: 173.194.70.136 (173.194.70.136, 173.194.70.190, 173.194.70.93, 173.194.70.91, )  
google.com: 46.28.247.98 (46.28.247.98, 46.28.247.89, 46.28.247.84, 46.28.247.108, 46.28.247.119, 46.28.247.114, 46.28.247.88, 46.28.247.94, 46.28.247.99, 46.28.247.109, 46.28.247.93, 46.28.247.104, 46.28.247.113, 46.28.247.118, 46.28.247.123, 46.28.247.103, )
facebook.com: 173.252.110.27 (173.252.110.27, )
a-parser.com: 176.9.9.90 (176.9.9.90, )
vk.com: 87.240.143.244 (87.240.143.244, 87.240.131.120, )
yandex.ru: 93.158.134.11 (93.158.134.11, 213.180.193.11, 213.180.204.11, 77.88.21.11, 87.250.250.11, )

保存为 SQL 格式

结果格式:

[% "INSERT INTO dns VALUES('" _ query _ "', '" _ ip _ "', '" _ ips.format('$ip, ') _ "')\n" %]

结果示例:

INSERT INTO dns VALUES('vk.com', '87.240.190.67', '87.240.190.67, 87.240.190.72, 87.240.190.78, 93.186.225.208, 87.240.137.158, 87.240.139.194, ')
INSERT INTO dns VALUES('a-parser.com', '176.9.9.90', '176.9.9.90, ')
INSERT INTO dns VALUES('yandex.ru', '5.255.255.50', '5.255.255.50, 77.88.55.50, 77.88.55.88, 5.255.255.5, ')
INSERT INTO dns VALUES('facebook.com', '157.240.19.35', '157.240.19.35, ')
INSERT INTO dns VALUES('youtube.com', '172.217.171.238', '172.217.171.238, ')

将结果转储为 JSON

通用结果格式:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.query = query;
obj.ips = p1.ips;

obj.json %]

起始文本:

[

结束文本:

]

结果示例:

[
{"ips":[{"ip":"176.9.9.90"}],"query":"http://a-parser.com/"},
{"ips":[{"ip":"172.217.173.78"}],"query":"http://google.com/"},
{"ips":[{"ip":"77.88.55.60"},{"ip":"77.88.55.66"},{"ip":"5.255.255.55"},{"ip":"5.255.255.60"}],"query":"http://yandex.ru/"},
{"ips":[{"ip":"172.217.25.14"}],"query":"http://youtube.com/"},
{"ips":[{"ip":"87.240.190.78"},{"ip":"93.186.225.208"},{"ip":"87.240.137.158"},{"ip":"87.240.139.194"},{"ip":"87.240.190.67"},{"ip":"87.240.190.72"}],"query":"http://vk.com/"},
{"ips":[{"ip":"157.240.196.35"}],"query":"http://facebook.com/"}
]
提示

要在任务编辑器中使用“Prepend text”和“Append text”选项,需要激活“More options”。

可选设置

参数默认值描述
DNS Servers208.67.220.220, 8.8.8.8支持通过逗号分隔多个服务器
Not found is error允许重新检查来自 DNS 服务器的错误响应
Rotation typeConsistently选择下一个 DNS 服务器的方法(顺序/随机)
Ban not working servers根据启发式算法将不工作的服务器封禁 20 分钟,如果只剩下一个服务器,则不会被封禁
Query typeA - Address record允许选择记录类型