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多线程(python多线程简明教程)
Jun 09 Python
Python随机生成数据后插入到PostgreSQL
Jul 28 Python
Python实现注册登录系统
Aug 08 Python
浅谈用VSCode写python的正确姿势
Dec 16 Python
解决pandas read_csv 读取中文列标题文件报错的问题
Jun 15 Python
详解Python3中ceil()函数用法
Feb 19 Python
python使用threading.Condition交替打印两个字符
May 07 Python
python使用装饰器作日志处理的方法
Jul 11 Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 Python
解决运行出现'dict' object has no attribute 'has_key'问题
Jul 15 Python
Django Auth用户认证组件实现代码
Oct 13 Python
python3爬虫中引用Queue的实例讲解
Nov 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
PHP flock 文件锁详细介绍
2012/12/29 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
vue实现选中效果
2020/10/07 Javascript
python爬取51job中hr的邮箱
2016/05/14 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python如何将两个txt文件内容合并
2019/10/18 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
工厂厂长的职责
2013/12/12 职场文书
早读迟到检讨书
2014/01/24 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
初中学生评语大全
2014/04/24 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
财政局个人总结
2015/03/04 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL