我希望你能指出我正确的方向,我正在解决一个小问题。
我想创建一个基本的Web应用程序来执行DNS查询,以验证一组特定的DNS记录是否处于活动状态。 DNS记录都是A记录,并托管在基于SQL的CMDB上。
我是python的粉丝,我更喜欢使用它,但我不知道从哪里开始。我正在看的用例如下:
- 浏览至http://hostname/pythonDnsTool.html
- 单击[运行查询]按钮
- 脚本查询 [DnsARecord] 表以验证是否存在dnsNames列表
- 完成后http://hostname/pythonDnsTool.html返回查询域列表,其中包含“是”或“否”
非常感谢任何建议或指导。
非常感谢,
Westie5017
答案 0 :(得分:0)
有一些工具,哪一种最好取决于您的需求。
1] 一个伟大的python工具可以满足你的要求而且还有更多 scapy 。 例如:
>>> packet = DNSQR()
>>> packet.show()
###[ DNS Question Record ]###
qname= '.'
qtype= A
qclass= IN
正如您所看到的,它使您能够以高级别制作数据包。 例如,如果您想发送简单的DNS查询并获得回复,您可以执行以下操作:
sr1(IP(dst="some_ip")/UDP()/DNS(rd=1,qd=DNSQR(qname="")))
但同样,这只是你可以做的事情的一个最小例子。 有关更多信息,请查看: here和here(scapy'一般文档)
,特别是 DNS ,请查看here,您可以在其中找到大量示例。
2] 您也可以使用内置的socket
模块:
import socket
info = socket.getaddrinfo('a_domain', a_port)
socket.gethostbyname('a_domain') # but this will give only the ip
3] 最后,您可以使用dnspython。