python实现DNS查询
来源:互联网 发布:网络翻唱女歌手排行榜 编辑:程序博客网 时间:2024/04/30 12:00
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.com的IP地址返回给本地DNS服务器
(6) 本地DNS服务器把www.baidu.com的IP地址返回给电脑。
2.域名和IP地址的对应关系:
一个域名可以对应多个IP地址,但在同一时刻,一个域名只能有一个IP地址,一个IP地址可以对应多个域名。
3.查询DNS
Python可以实现DNS的正向和反向查询。下面是正向查询的代码:
#!/usr/bin/env pythonimport sys,socketresult=socket.getaddrinfo(sys,argv[1],None)print result[0][4]
因为一个域名可以有多个IP地址,所以上述程序两次运行的结果可能会不同。
运行程序 ./test.py www.baidu.com
结果为 (‘111.13.100.91’,80)
反向查询:
#!/usr/bin/env pythonimport sys,sockettry: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
0 0
- python实现DNS查询
- 《Python实现DNS解析查询》
- Python学习笔记--简单实现DNS查询
- 使用Python进行DNS查询
- Python:DNS客户端实现
- Python:DNS客户端实现
- Socket DNS查询之实现
- Java DNS查询内部实现
- Java DNS查询内部实现
- Java DNS查询内部实现
- python与域名系统(DNS)正向查询
- 19、DNS的概念,用途,DNS查询的实现算法
- DIY一个DNS查询器:程序实现
- dns查询
- DNS查询
- DNS查询
- DNS查询
- Python 实现DNS服务器(Pyhon域名解析服务器)
- HDU1556 线段树
- Android学习之ListView自定义样式
- 陕西咸阳协警在宾馆坐窗台与女子聊天坠楼身亡
- 设计模式之建造者模式与工厂方法模式
- java类加载器
- python实现DNS查询
- Jmeter:图形界面压力测试工具
- HDU1556 前缀和
- 【数据结构与算法】模式匹配——从BF算法到KMP算法(附完整源码)
- 打造你自己的程序员品牌
- 思维导图--全局与细节
- read 数组
- 字符指针
- 关于IOS面试的问题