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面向对象_详谈类的继承与方法的重载
Jun 07 Python
python实现数据图表
Jul 29 Python
python编写Logistic逻辑回归
Dec 30 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
Python 微信爬虫完整实例【单线程与多线程】
Jul 06 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
Apr 13 Python
python关于倒排列的知识点总结
Oct 13 Python
Django restful framework生成API文档过程详解
Nov 12 Python
TensorFlow中tf.batch_matmul()的用法
Jun 02 Python
Python数据分析之pandas读取数据
Jun 02 Python
如何利用python实现Simhash算法
Jun 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
带你快速理解javascript中的事件模型
2017/08/14 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
javascript实现计算器功能
2020/03/30 Javascript
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
Linux下编译安装MySQL-Python教程
2015/02/02 Python
有关Python的22个编程技巧
2018/08/29 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
python实现图像全景拼接
2020/03/27 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
感恩之星事迹材料
2014/05/03 职场文书
文明寝室申报材料
2014/05/12 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
Mysql Show Profile
2021/04/05 MySQL
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
详细了解MVC+proxy
2021/07/09 Java/Android
python编程实现清理微信重复缓存文件
2021/11/01 Python