【问题标题】:Python - DNS lookup from SQL databasePython - 从 SQL 数据库中查找 DNS
【发布时间】:2016-09-26 20:31:27
【问题描述】:
我希望你能就我遇到的一个小问题指出正确的方向。
我想创建一个基本的 Web 应用程序来执行 DNS 查询以验证一组特定的 DNS 记录是否处于活动状态。 DNS 记录都是 A 记录,托管在基于 SQL 的 CMDB 上。
我是 python 的粉丝并且更喜欢使用它,但我不知道从哪里开始。我正在查看的用例如下:
任何建议或指导将不胜感激。
非常感谢,
Westie5017
【问题讨论】:
标签:
python
sql-server
dns
【解决方案1】:
有一些工具,哪个最好取决于您的需求。
1] scapy 是一款出色的 Python 工具,可以满足您的要求,而且功能更多。
例如:
>>> 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了。