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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 Python
selenium+python截图不成功的解决方法
Jan 30 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
django foreignkey(外键)的实现
Jul 29 Python
基于python+selenium的二次封装的实现
Jan 06 Python
python opencv如何实现图片绘制
Jan 19 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
Python接口测试数据库封装实现原理
May 09 Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 Python
详解Python如何批量采集京东商品数据流程
Jan 22 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
es6数据变更同步到视图层的方法
2019/03/04 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
python开发之thread实现布朗运动的方法
2015/11/11 Python
python生成随机图形验证码详解
2017/11/08 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
python实现二维插值的三维显示
2018/12/17 Python
python爬虫超时的处理的实例
2018/12/19 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
规划编制实施方案
2014/03/15 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
个人工作年终总结
2015/03/09 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书