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基于Tkinter的HelloWorld入门实例
Jun 17 Python
django基础之数据库操作方法(详解)
May 24 Python
Python对列表中的各项进行关联详解
Aug 15 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
python与caffe改变通道顺序的方法
Aug 04 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
Python生成器next方法和send方法区别详解
May 30 Python
Python Map 函数的使用
Aug 28 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 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 工厂模式使用方法
2010/05/18 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
深入分析PHP引用(&)
2014/09/04 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
Smarty3配置及入门语法
2017/02/22 PHP
番茄的表单验证类代码修改版
2008/07/18 Javascript
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
Python中super函数的用法
2017/11/17 Python
Python Socket使用实例
2017/12/18 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
python中selenium库的基本使用详解
2020/07/31 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
会计专业应届生求职信
2013/11/24 职场文书
学校招生宣传广告词
2014/03/19 职场文书
党员转正申请报告
2015/05/15 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android