本文实例讲述了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程序设计有所帮助。

python socket 域名_python实现域名系统(DNS)正向查询的方法相关推荐

  1. python socket 域名_Python网络编程中的套接字名和DNS解析。

    距离上一次TCP的文章,这一次要讲的是套接字名和DNS,并且还会涉及到网络数据的发送接受和网络错误的发生和处理. 下面说套接字名,在创建和部署每个套接字对象时总共需要做5个主要的决定,主机名和IP地址 ...

  2. python socket 域名_python用socket发送http请求

    python用socket发送http请求 平时我们使用浏览器浏览web资源,写爬虫的时候,我们会使用封装好的库,比如requests,或者使用爬虫框架.工欲善其事必先利其器,顶层封装好的东西,是为了 ...

  3. python socket编程_Python Socket编程实现网络编程

    对于有经验的开发人员来说,掌握的编程语言应该是不少的.在这些编程语言中,网络编程的应用时必不可少的.其中Python也是这样的编程语言.我们今天将会在这里为大家详细介绍一下Python Socket编 ...

  4. python socket编程_Python学习记录-socket编程

    1. OSI七层模型详解 2. Python socket 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答 ...

  5. python socket 游戏_python socket模拟游戏开服

    python socket服务端 #!/usr/bin/python #-*- coding: utf-8 -*- import socket import os,sys host='127.0.0. ...

  6. python socket双向通信_Python socket实现多对多全双工通信的方法

    服务器:#server.py #!/usr/bin/env python #-*-coding:utf-8-*- import sys import struct#将字符串打包为二进制流进行网络传输 ...

  7. python time计时_python中的计时器timeit的使用方法

    这篇文章主要介绍了关于python中的计时器timeit的使用方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 本文介绍了python中的计时器timeit的使用方法,分享给大家,具 ...

  8. python 解析域名_Python实现通过解析域名获取ip地址的方法分析

    本文实例讲述了Python实现通过解析域名获取ip地址的方法.分享给大家供大家参考,具体如下: 从网上查找的一些资料,特此做个笔记 案例1: def getIP(domain): myaddr = s ...

  9. python变量域名_Python实现从url中提取域名的几种方法

    从url中找到域名,首先想到的是用正则,然后寻找相应的类库.用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等.通过google查到几种方法,一种是用Python中自带的模块和正则 ...

最新文章

  1. mybaties分页
  2. 如何关闭事件跟踪程序
  3. java哈夫曼编码与译码_哈夫曼编码与译码
  4. Debug无忧!清华校友打造Python调试神器:反向追踪变量、数据流等 | 开源
  5. CSDN如何快速转载别人的博客(附简单详细方法)
  6. 13-numpy笔记-莫烦pandas-1
  7. qt linux 聊天室,Qt网络聊天室客户端
  8. Spring.Net学习笔记(2)-依赖注入
  9. 终端主题_泛终端全渠道新模式中国移动5G泛智能终端渠道生态合作峰会开幕
  10. javascript中打印对象显示[object object]_js如何打印object对象
  11. wan口有流量但电脑上不了网_wan口有ip地址但是上不了网怎么办?
  12. c语言 get post,简述GET和POST的区别
  13. 什么是“BM”女孩?“BM”女孩的标准是什么?
  14. 动荡的 Docker
  15. 复旦大学计算机a类专业,如何看待浙大A类学科39个,全国第一,录取分却比复旦、上交低?...
  16. vc6怎么新建一个c++程序?
  17. Listary一款不只是程序员需要的软件
  18. leetcode第1282题
  19. Git GUI 中文乱码怎么解决
  20. PS:高清晰度的源文件保存成图片如何使图片大小最小

热门文章

  1. 原生js—classList.add()、classList.remove()、classList.contains()、classList.toggle()、
  2. HKICPA特别报告:财务总监的进化
  3. 游戏设计行业应该选哪一块去学习,然后就业?哪个前景更好
  4. 《软件工程》第8章软件测试
  5. 华为鸿蒙手机模拟器,某游戏在华为鸿蒙运行,被识别成使用安卓模拟器
  6. Android仿小红书启动页平行动画
  7. 相见恨晚,华为手机6大实用有逼格的功能,你开启了吗?
  8. DataGridView打印专家组件2.5版正式发布
  9. 成功创业的“六字真言”
  10. org.junit.runners.model.InvalidTestClassError异常解决