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编程django实现同一个ip十分钟内只能注册一次
Nov 03 Python
PyCharm 常用快捷键和设置方法
Dec 20 Python
python爬取淘宝商品详情页数据
Feb 23 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
python中的&&及||的实现示例
Aug 07 Python
18个Python脚本可加速你的编码速度(提示和技巧)
Oct 17 Python
python实现3D地图可视化
Mar 25 Python
python中字符串的编码与解码详析
Dec 03 Python
安装不同版本的tensorflow与models方法实现
Feb 20 Python
Python pandas之求和运算和非空值个数统计
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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
社区(php&&mysql)二
2006/10/09 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
php时间函数用法分析
2016/05/28 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
python中MySQLdb模块用法实例
2014/11/10 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python 对象中的数据类型
2017/05/13 Python
Python中装饰器学习总结
2018/02/10 Python
python assert的用处示例详解
2019/04/01 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
python适合做数据挖掘吗
2020/06/16 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
程序员求职信
2014/04/16 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
go xorm框架的使用
2021/05/22 Golang
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python