有一些工具,哪一个最好取决于您的需求。
的 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="")))
但同样,这只是你可以做的事情的一个最小例子。 有关更多信息,请查看: 这里 和 这里 (scapy的一般文件)
而且特别适合 的 DNS 强> 看一眼 这里 在那里你可以找到很多例子。
的 2] 强> 或者,您也可以使用内置功能 socket 模块:
socket
import socket info = socket.getaddrinfo('a_domain', a_port) socket.gethostbyname('a_domain') # but this will give only the ip
的 3] 强> 最后你可以使用 dnspython 。