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 输出一个两行字符的变量
Feb 05 Python
Python实现的简单发送邮件脚本分享
Nov 07 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
Python输出\u编码将其转换成中文的实例
Dec 15 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
python+pyqt5实现KFC点餐收银系统
Jan 24 Python
python打开使用的方法
Sep 30 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 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截取中文字符串不乱码的方法
2013/12/25 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python 第一步 hello world
2009/09/25 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
pycharm远程调试openstack代码
2017/11/21 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
python实现扫雷游戏的示例
2020/10/20 Python
python3实现简单飞机大战
2020/11/29 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
2014年应届大学生自我评价
2014/01/09 职场文书
档案接收函范文
2014/01/10 职场文书
高中家长寄语
2014/04/02 职场文书
建筑施工安全生产责任书
2014/07/22 职场文书
原生JS实现飞机大战小游戏
2021/06/09 Javascript
python中对列表的删除和添加方法详解
2022/02/24 Python