python实现域名系统(DNS)正向查询的方法


Posted in Python onApril 19, 2016

本文实例讲述了python实现域名系统(DNS)正向查询的方法。分享给大家供大家参考,具体如下:

域名系统(DNS)是一个分布式的数据库,主要是用来把主机名换成IP地址。

DNS存在有两大理由:

(1)可以使用户方便记住名字,而不是纯粹的IP地址;
(2)允许服务器改变IP地址,但可以使用原来的域名。

系统中最基本的查询为正向查询,它会根据一个主机名来查找IP地址。例如如果你想从www.example.com上下载一个web页面,首先要寻找到IP地址。正想查询会帮你完成这个任务,它会把一个名字翻译成一个IP地址。

在python中定义了一个函数socket.getaddrinfo(),用来完成这种正向查询。它是这样定义的:

getaddrinfo(host, port[,family[, sockettype[, proto[, flags]]]])

host参数就是想寻找的域名,而其他的参数只有在你想把结果直接传递给socket.socket()或socket.connect()时才会用到。

下面是正向查询的小例子:

import sys, socket
result = socket.getaddrinfo(sys.argv[1], None, 0, socket.SOCK_STREAM)
counter = 0;
for item in result:
  print "%-2d: %s" % (counter, item[4])
  counter += 1

运行结果:

python实现域名系统(DNS)正向查询的方法

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python中split方法用法分析
Apr 17 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
Python计时相关操作详解【time,datetime】
May 26 Python
Python定时器实例代码
Nov 01 Python
Python使用matplotlib简单绘图示例
Feb 01 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
python子线程退出及线程退出控制的代码
Oct 16 Python
python 循环数据赋值实例
Dec 02 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
Jun 05 Python
python安装与使用redis的方法
Apr 19 #Python
Python实现文件复制删除
Apr 19 #Python
利用Python获取赶集网招聘信息前篇
Apr 18 #Python
Python Sql数据库增删改查操作简单封装
Apr 18 #Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 #Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 #Python
python动态加载包的方法小结
Apr 18 #Python
You might like
PHP的中问验证码
2006/11/25 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
JS 面向对象之神奇的prototype
2011/02/26 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中AND、OR的一个使用小技巧
2015/02/18 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Python使用sax模块解析XML文件示例
2019/04/04 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
tensorflow 实现数据类型转换
2020/02/17 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
中间件分为哪几类
2012/03/14 面试题
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
大学毕业生简单自荐信
2013/11/05 职场文书
《理想》教学反思
2014/02/17 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
会计出纳岗位职责
2015/03/31 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
OpenCV实现常见的四种图像几何变换
2022/04/01 Python
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技