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]
使用比较简单,问题在于pyDNS的开发沉寂了下去,而adns似乎以替代pyDNS为目标。
阅读(6858) | 评论(0) | 转发(0) |