Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4995191
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: Python/Ruby

2011-11-29 16:03:40

Python中DNS解析基本的方法是利用socket模块,实例代码如下:
  1. import sys, socket
  2. # 获取域名的IP地址
  3. result = socket.getaddrinfo(sys.argv[1], None)
  4. print result[0][4]

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

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

  1. import DNS
  2. s = DNS.Request(name=DOMAIN-NAME, server=DNS-SERVER)
  3. # returns a list containing a single dictionary
  4. resolve = s.req().answers
  5. print resolve[0]['data']

  6. import adns
  7. import sys
  8. s = adns.init(adns.iflags.noautosys,sys.stderr,"nameserver NS-SERVER") # returns a tuple
  9. resolve = s.synchronous(DOMAIN-NAME,adns.rr.A)
  10. print resolve[3][0]

使用比较简单,问题在于pyDNS的开发沉寂了下去,而adns似乎以替代pyDNS为目标。

阅读(6780) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~