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通过pil为png图片填充上背景颜色的方法
Mar 17 Python
浅析Git版本控制器使用
Dec 10 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
Python实现合并两个列表的方法分析
May 28 Python
解决PyCharm同目录下导入模块会报错的问题
Oct 13 Python
Python实现爬取马云的微博功能示例
Feb 16 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
Python使用Turtle库绘制一棵西兰花
Nov 23 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
python如何快速拼接字符串
Oct 28 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
中英文字符串翻转函数
2008/12/09 PHP
检查php文件中是否含有bom的函数
2012/05/31 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
Python字符串匹配算法KMP实例
2015/07/18 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
什么是Remote Module
2016/06/10 面试题
2014年优质护理服务工作总结
2014/11/14 职场文书
布达拉宫导游词
2015/02/02 职场文书
面试通知短信
2015/04/20 职场文书
邹越演讲观后感
2015/06/15 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android