首页 > 编程语言 > 详细

python实现DNS查询

时间:2014-02-17 00:09:15      阅读:721      评论:0      收藏:0      [点我收藏+]

1.DNS查询过程:

以查询 www.baidu.com为例

(1)       电脑向本地域名服务器发送解析www.baidu.com的请求

(2)       本地域名服务器收到请求后,先查询本地的缓存,如果找到直接返回查询结果,如果没有该记录,本地域名服务器把www.baidu.com的请求发送给根域名服务器

(3)       根域名服务器收到请求后,把.com域的服务器IP地址返回给本地域名服务器

(4)       本地域名服务器连接.com服务器,向其请求解析域名www.baidu.com .com服务器把baidu.com服务器的IP地址返回给本地DNS服务器

(5)       本地DNS服务器向baidu.com服务器发送解析域名请求,baidu.com服务器将www.baidu.comIP地址返回给本地DNS服务器

(6)       本地DNS服务器把www.baidu.comIP地址返回给电脑。

2.域名和IP地址的对应关系:

一个域名可以对应多个IP地址,但在同一时刻,一个域名只能有一个IP地址,一个IP地址可以对应多个域名。

3.查询DNS

Python可以实现DNS的正向和反向查询。下面是正向查询的代码:

#!/usr/bin/env python
import sys,socket
result=socket.getaddrinfo(sys,argv[1],None)
print result[0][4]

因为一个域名可以有多个IP地址,所以上述程序两次运行的结果可能会不同。

运行程序  ./test.py www.baidu.com

结果为  (‘111.13.100.91’,80)

反向查询:

#!/usr/bin/env python
import sys,socket
try:
	result=socket.gethostbyaddr(sys.argv[1])
	print "hostname is "+result[0]
except socket.herror,e:
	print "can’t look up"


 运行程序

./test2  127.0.0.1

结果为:

hostname is localhost

 

python实现DNS查询

原文:http://blog.csdn.net/u011608357/article/details/19286267

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!