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中使用正则表达式查找可嵌套字符串组
Oct 24 Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 Python
python方法生成txt标签文件的实例代码
May 10 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
Python GUI编程完整示例
Apr 04 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
Django工程的分层结构详解
Jul 18 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
使用Puppeteer爬取微信文章的实现
Feb 11 Python
基于Python快速处理PDF表格数据
Jun 03 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
Anaconda配置各版本Pytorch的实现
Aug 07 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
MSN消息提示类
2006/09/05 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
python实现360的字符显示界面
2014/02/21 Python
python提取页面内url列表的方法
2015/05/25 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
python regex库实例用法总结
2021/01/03 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
优秀教师感人事迹材料
2014/05/04 职场文书
老员工辞职信范文
2015/05/12 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android