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函数局部变量用法实例分析
Aug 04 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
python中cPickle类使用方法详解
Aug 27 Python
python之消除前缀重命名的方法
Oct 21 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
Python饼状图的绘制实例
Jan 15 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
使用Python脚本从文件读取数据代码实例
Jan 19 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 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
escape unescape的php下的实现方法
2007/04/27 PHP
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
PHP 配置文件中open_basedir选项作用
2009/07/19 PHP
为PHP初学者的8点有效建议
2010/11/20 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
基于js disabled="false"不起作用的解决办法
2013/06/26 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
ES6入门教程之let和const命令详解
2017/05/17 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
简述Python2与Python3的不同点
2018/01/21 Python
python实现文件的备份流程详解
2019/06/18 Python
python中 * 的用法详解
2019/07/10 Python
python 代码运行时间获取方式详解
2020/09/18 Python
美国精油公司:Plant Therapy
2019/05/17 全球购物
挂职自我鉴定
2014/02/26 职场文书
保证书范文大全
2014/04/28 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
励志演讲稿500字
2014/08/21 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript