python socket 域名_python实现域名系统(DNS)正向查询的方法
本文实例讲述了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)正向查询的方法相关推荐
- python socket 域名_Python网络编程中的套接字名和DNS解析。
距离上一次TCP的文章,这一次要讲的是套接字名和DNS,并且还会涉及到网络数据的发送接受和网络错误的发生和处理. 下面说套接字名,在创建和部署每个套接字对象时总共需要做5个主要的决定,主机名和IP地址 ...
- python socket 域名_python用socket发送http请求
python用socket发送http请求 平时我们使用浏览器浏览web资源,写爬虫的时候,我们会使用封装好的库,比如requests,或者使用爬虫框架.工欲善其事必先利其器,顶层封装好的东西,是为了 ...
- python socket编程_Python Socket编程实现网络编程
对于有经验的开发人员来说,掌握的编程语言应该是不少的.在这些编程语言中,网络编程的应用时必不可少的.其中Python也是这样的编程语言.我们今天将会在这里为大家详细介绍一下Python Socket编 ...
- python socket编程_Python学习记录-socket编程
1. OSI七层模型详解 2. Python socket 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答 ...
- python socket 游戏_python socket模拟游戏开服
python socket服务端 #!/usr/bin/python #-*- coding: utf-8 -*- import socket import os,sys host='127.0.0. ...
- python socket双向通信_Python socket实现多对多全双工通信的方法
服务器:#server.py #!/usr/bin/env python #-*-coding:utf-8-*- import sys import struct#将字符串打包为二进制流进行网络传输 ...
- python time计时_python中的计时器timeit的使用方法
这篇文章主要介绍了关于python中的计时器timeit的使用方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 本文介绍了python中的计时器timeit的使用方法,分享给大家,具 ...
- python 解析域名_Python实现通过解析域名获取ip地址的方法分析
本文实例讲述了Python实现通过解析域名获取ip地址的方法.分享给大家供大家参考,具体如下: 从网上查找的一些资料,特此做个笔记 案例1: def getIP(domain): myaddr = s ...
- python变量域名_Python实现从url中提取域名的几种方法
从url中找到域名,首先想到的是用正则,然后寻找相应的类库.用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等.通过google查到几种方法,一种是用Python中自带的模块和正则 ...
最新文章
- mybaties分页
- 如何关闭事件跟踪程序
- java哈夫曼编码与译码_哈夫曼编码与译码
- Debug无忧!清华校友打造Python调试神器:反向追踪变量、数据流等 | 开源
- CSDN如何快速转载别人的博客(附简单详细方法)
- 13-numpy笔记-莫烦pandas-1
- qt linux 聊天室,Qt网络聊天室客户端
- Spring.Net学习笔记(2)-依赖注入
- 终端主题_泛终端全渠道新模式中国移动5G泛智能终端渠道生态合作峰会开幕
- javascript中打印对象显示[object object]_js如何打印object对象
- wan口有流量但电脑上不了网_wan口有ip地址但是上不了网怎么办?
- c语言 get post,简述GET和POST的区别
- 什么是“BM”女孩?“BM”女孩的标准是什么?
- 动荡的 Docker
- 复旦大学计算机a类专业,如何看待浙大A类学科39个,全国第一,录取分却比复旦、上交低?...
- vc6怎么新建一个c++程序?
- Listary一款不只是程序员需要的软件
- leetcode第1282题
- Git GUI 中文乱码怎么解决
- PS:高清晰度的源文件保存成图片如何使图片大小最小
热门文章
- 原生js—classList.add()、classList.remove()、classList.contains()、classList.toggle()、
- HKICPA特别报告:财务总监的进化
- 游戏设计行业应该选哪一块去学习,然后就业?哪个前景更好
- 《软件工程》第8章软件测试
- 华为鸿蒙手机模拟器,某游戏在华为鸿蒙运行,被识别成使用安卓模拟器
- Android仿小红书启动页平行动画
- 相见恨晚,华为手机6大实用有逼格的功能,你开启了吗?
- DataGridView打印专家组件2.5版正式发布
- 成功创业的“六字真言”
- org.junit.runners.model.InvalidTestClassError异常解决