Python中DNS解析基本的方法是利用socket模块,实例代码如下:

1. import sys, socket
2.  # 获取域名的IP地址
3. = socket.getaddrinfo(sys.argv[1], None)
4. print result[0][4]

这种方法很简单,但是有一个很明显的问题,在于它并没有提供指定DNS服务器的方法,于是在“DNS污染“的干扰下,不能很好的工作。

放狗出来,找到另外两种方法,分别使用pyDNS和aDNS模块,实例代码如下:

1. import DNS
2. = DNS.Request(name=DOMAIN-NAME, server=DNS-SERVER)
3.  # returns a list containing a single dictionary
4. = s.req().answers
5. print resolve[0]['data']
6.  
7. import adns
8. import sys
9. = adns.init(adns.iflags.noautosys,sys.stderr,"nameserver NS-SERVER") # returns a tuple
10. = s.synchronous(DOMAIN-NAME,adns.rr.A)
11. print resolve[3][0]