自动化测试中各种流量的模拟3

xiaoxiao2021-02-27  201

1、对于dns的流量模拟我模拟了两种方式,一种是直接构造DNS数据包,一种是使用nslookup命令来进行 (1) 对于直接构造pcap包进行DNS解析代码如下:

def dns_senrch(dns_URL): #向dns服务发送dns请求 socket.setdefaulttimeout(10) mysocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) msg = b'\x5c\x6d\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x05baidu\x03com\x00\x00\x01\x00\x01' #16进制的dns报文,请求解析百度的ip mysocket.sendto(msg,(dns_URL,53)) receive=mysocket.recv(4096) print str(receive).encode('hex') #收到dns返回的报文并以16进制打印 print str(receive)

可以看到首先要设置socket超时时间,方式函数无网络或者其他情况造成的socket阻塞,然后构造一个标准的DNS包,然后将包加入到socket中,将socket发送后再等待socket的回传,并将回传包的DNS内容使用16进制直接打印出来

(2) 第二种则是直接使用nslookup命令,简单易懂代码如下:

def dns(ip_domain,dns_url): command=os.popen('nslookup '+ip_domain+' '+dns_url) print command.read() command.close()

直接用os.popen()函数调用nslookup命令并填写要解析的DNS域名或IP和DNS服务器地址

转载请注明原文地址: https://www.6miu.com/read-12621.html

最新回复(0)