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

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服务器地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值