python 实现dns请求,dns_request(socket getaddrinfo whiel)

#coding:UTF-8
#socket.getaddrinfo(host,  port, family=0, socktype=0, proto=0, flags=0)    
#根据给定的参数host/port,相应的转换成一个包含用于创建socket对象的五元组,    
#参数host为域名,以字符串形式给出代表一个IPV4/IPV6地址或者None.    
#参数port如果字符串形式就代表一个服务名,比如“http”"ftp""email"等,或者为数字,或者为None    
#参数family为地主族,可以为AF_INET  ,AF_INET6 ,AF_UNIX.    
#参数socketype可以为SOCK_STREAM(TCP)或者SOCK_DGRAM(UDP)    
#参数proto通常为0可以直接忽略,就是指定协议。套接口所用的协议。如调用者不想指定,可用0。常用的协议有,IPPROTO_TCP(=6)和IPPTOTO_UDP(=17),它们分别对应TCP传输协议、UDP传输协议。    
#参数flags为AI_*的组合,比如AI_NUMERICHOST,它会影响函数的返回值    
#附注:给参数host,port传递None时建立在C基础,通过传递NULL。    
#该函数返回一个五元组(family, socktype, proto, canonname, sockaddr),同时第五个参数sockaddr也是一个二元组(address, port)    
# Echo server program    
import sys,socket
domain=‘www.baidu.com‘
x=0
n=1
while x<n:
result=socket.getaddrinfo(domain,53,socket.AF_INET,socket.SOCK_DGRAM,17,0)
print result
num=len(result)
#print num
a=0
print domain
while a<num:
i=result[a][4][0]
print i
a=a+1
#print a

x=x+1

ps:注释部分为网上资料

时间: 2024-11-06 13:51:42

python 实现dns请求,dns_request(socket getaddrinfo whiel)的相关文章

python管理DNS

DNS    检测 NS     对应DNS服务器 SOA    授权哪个服务器可以作为dns服务器 MX     mailexchange 邮件交换记录 A      address CNAME  别名 TXT PTR    反向解析 /etc/hosts 先往根域查找,再往.com域查找,  客户端发起请求,递归 服务器之间是迭代 .根域 递归 迭代 dnsmasq  服务 tcp  不安全网址 udp cp -rp  权限 host   ns.example.com nsupdate ho

python标准库之【socket】

socket通常也称作”套接字“.网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.socket 是网络连接端点.例如当你的Web浏览器请求www.fishc.com上的主页时,你的Web浏览器创建一个socket并命令它去连接 www.fishc.com的Web服务器主机,Web服务器也对来自的请求在一个socket上进行监听.两端使用各自的socket来发送和 接收信息. socket模块提供了几个函数用于使用主机名和地址来工作:         ge

Python自动化开发,Day9 - Socket网络编程

本章内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 一.Socket介绍 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"想网络发出请求或者应答网络请求. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.

Python服务器开发三:Socket

Python服务器开发三:Socket socket是操作系统中I/O的延续,它可以使进程和机器之间的通信成为可能.socket可以看成一个标准的文件描述符.不同的是文件需要用open()函数打开,而socket用socket() 函数建立.recv().send()函数和read().write()函数极为相似. TCP一般通过accept()来为每个连接的客户端建立一个新的scoket.UDP一般只是使用一个单一的socket,完全依靠recvfrom()返回的值来判断该往哪里发送响应. 客

Python之路【第九篇】:Python基础(26)——socket server

socketserver Python之路[第九篇]:Python基础(25)socket模块是单进程的,只能接受一个客户端的连接和请求,只有当该客户端断开的之后才能再接受来自其他客户端的连接和请求.当然我 们也可以通过python的多线程等模块自己写一个可以同时接收多个客户端连接和请求的socket.但是这完全没有必要,因为python标准库已经为 我们内置了一个多线程的socket模块socketserver,我们直接调用就可以了,完全没有必要重复造轮子. 我们只需简单改造一下之前的sock

[gevent源码分析] c-ares异步DNS请求

c-ares是异步DNS请求库,libcurl,libevent,wireshark都使用了c-ares,gevent1.0版本前使用的是libevent, 所以它的DNS请求也是使用c-ares,1.0版本后使用cython封装了c-ares. c-ares官方文档,http://c-ares.haxx.se/docs.html. gevent中DNS默认使用的是线程池版本的,可通过设置GEVENT_RESOLVER=ares环境变量使用c-ares异步库. 如何证明的确是异步呢,试着跑一遍你

哗啦啦Python之路 - Day 9 - socket

1. socket是什么 Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用[打开][读写][关闭]模式来操作. socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭) socket和file的区别: file模块

python自动化运维之Socket网络编程

1.Socket      socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO.打开.关闭)基本上,Socket 是任何一种计算机网络通讯中最基础的内容.例如当你在浏览器地址栏中输入 http://www.cnblogs.com/ 时,你会打开一个套接字,然后连接到 http://www.cnb

python自动化开发学习-9 socket网络编程

一. 简介 python提供了两个级别访问的网络服务: 低级别的网络服务支持节本的socket,它提供了标准的BSD sockets API,可以访问底层操作系统socket接口的全部方法. 高级别的网络服务模块socketserver,它提供了服务器中心类,可以简化网络服务器的开发. socket介绍 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix