python异步DNS
在公司分享了DNS的基础知识,PPT请见:《有趣的DNS》。
在内容中,我提到了如何DNS协议是什么样的,以及如何用Python构造DNS请求,实现异步DNS。
Python实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import socket import dns.message, dns.rrset # UDP socket sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) dns_server = ('8.8.8.8', 53) domain = 'www.google.com.com' # DNS request request = dns.message.make_query(domain, 'A') sock.sendto(request.to_wire(), dns_server) # DNS response response = sock.recv(1024) response = dns.message.from_wire(response) print(response) |
依赖了一个开源项目,用来构造DNS请求以及解析DNS应答,以便实现灵活的异步DNS处理。
该开源项目主页:https://pypi.org/project/dnspython/,大家结合PPT以及代码,可以利用多线程实现收发线程的分离,实现异步高效DNS扫描等功能。
如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~
