python dns协议重写
来源:互联网 发布:win7如何禁止安装软件 编辑:程序博客网 时间:2024/05/16 07:48
可以指定dns查询,脱离本地dns设置。
import socket,os,redef dns_remote_resolve(qname, dnsserver, timeout=None, blacklist=set(), max_retry=2, max_wait=2): for i in xrange(max_retry): index = os.urandom(2) host = ''.join(chr(len(x))+x for x in qname.split('.')) data = '%s\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00%s\x00\x00\x01\x00\x01' % (index, host) address_family = socket.AF_INET6 if ':' in dnsserver else socket.AF_INET sock = None try: sock = socket.socket(family=address_family, type=socket.SOCK_DGRAM) if isinstance(timeout, (int, long)): sock.settimeout(timeout) sock.sendto(data, (dnsserver, 53)) for i in xrange(max_wait): data = sock.recv(512) iplist = ['.'.join(str(ord(x)) for x in s) for s in re.findall('\xc0.\x00\x01\x00\x01.{6}(.{4})', data) if all(ord(x)<=255 for x in s)] iplist = [x for x in iplist if x not in blacklist] if iplist: return iplist except socket.error as e: if e[0] in (10060, 'timed out'): continue except Exception, e: raise finally: if sock: sock.close()print dns_remote_resolve('www.baidu.com','8.8.8.8')
- python dns协议重写
- Python网络编程 4.3 DNS协议
- DNS协议
- DNS协议
- DNS协议
- DNS 协议
- DNS协议
- DNS协议
- DNS协议
- DNS协议
- DNS协议
- DNS协议
- DNS协议
- 【协议分析】DNS协议
- DNS协议解析1--DNS请求协议
- DNS协议概述
- DNS使用什么协议
- DNS协议 报文格式
- 常见的数据库基础面试题大全
- Oracle SQL常用函数
- hrbust1680 连线KM (权值为double)
- head file 和库的关系
- vim使用小技巧-api在线帮助
- python dns协议重写
- linux视频课程1
- 使用Molehill渲染3D模型
- 设计模式之状态模式案例代码
- 【天道酬勤】 腾讯、百度、网易游戏、华为Offer及笔经面经
- innerHTML、outerHTML、innerText、outerText
- acm训练推荐(1)
- hrbust 1725 并查集 (节点存放感染病毒信息)
- acm训练推荐(2)