Python中DNS解析基本的方法是利用socket模块,实例代码如下:
-
import sys, socket
-
# 获取域名的IP地址
-
result = socket.getaddrinfo(sys.argv[1], None)
- print result[0][4]
这种方法很简单,但是有一个很明显的问题,在于它并没有提供指定DNS服务器的方法,于是在“DNS污染“的干扰下,不能很好的工作。
放狗出来,找到另外两种方法,分别使用pyDNS和aDNS模块,实例代码如下:
-
import DNS
-
s = DNS.Request(name=DOMAIN-NAME, server=DNS-SERVER)
-
# returns a list containing a single dictionary
-
resolve = s.req().answers
-
print resolve[0]['data']
-
-
import adns
-
import sys
-
s = adns.init(adns.iflags.noautosys,sys.stderr,"nameserver
NS-SERVER") # returns a tuple
-
resolve = s.synchronous(DOMAIN-NAME,adns.rr.A)
- print resolve[3][0]