首页 > 编程知识 正文

幼儿园核酸检测应急预案脚本,幼儿园核酸检测演练脚本

时间:2023-05-03 22:11:50 阅读:233830 作者:2635

由于实验原因需要查询各地的dns时延,所以我参考了网上的各类代码,写了一个dns时延检测的脚本,希望朋友们指导。

-*- coding:utf-8 -*-from timeit import timeitimport timeimport socketglobal msgdef send(): q = msg sock_recv = 0 sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sock.sendto(q, ('8.8.8.8', 53)) sock_recv = sock.recv(4096) while sock_recv != 0: breakfor num in range(10): msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03wwwx05baidux03comx00x00x01x00x01' #msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03wwwx02qqx03comx00x00x01x00x01' t = timeit('send()', 'from __main__ import send', number=1) print t

使用了python中的socket库,这个库中可以实现发包的功能,这里面我们是将包发送的谷歌的dns服务器8.8.8.8的53端口,然后通过一个计时器函数来判断这个函数是否结束,即是否收到了返回的包,来计算dns时延,这种检测方法,要比通过wireshark抓包有更大的延迟,在我的机器上测试延迟是几毫秒,所以就忽略掉了。


msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03wwwx05baidux03comx00x00x01x00x01'msg的内容就是我们要发送的内容,可以任意更换地址,但是要注意  x03wwwx05baidux03com简单的说,就是前面数是代表了后面包含几个字母,其他各个位置都可以通过wireshark抓包来分析。

之后为了便于运行,我会从记事本中读取url,然后将结果输出在一个文件中。

# -*- coding:utf-8 -*-import socketimport csvimport sysfrom timeit import timeitclass Logger(object): def __init__(self, fileN="Default.log"): self.terminal = sys.stdout self.log = open(fileN, "a") def write(self, message): self.terminal.write(message) self.log.write(message) def flush(self): passdef send(): sock_recv = 0 sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sock.sendto(msg, ('114.114.114.114', 53)) sock_recv = sock.recv(4096) while sock_recv != 0: breakdef getlineNum(): f = open(u"website.txt", 'r') content = csv.reader(f) lineNum = 0 for line in content: lineNum += 1 f.close() return (lineNum) # lineNum就是你要的文件行数def creatXC(): f = open(u"website.txt", 'r') for i in range(0,10): line = f.readline() print(line) split1(line)def split1(line): global msg st1 = line.split('.') num = len(st1[1]) if num == 2: msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03%sx02%sx03comx00x00x01x00x01' % (st1[0], st1[1]) for i in range(11): t = timeit('send()', 'from __main__ import send', number=1) print(t) if num == 3: msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03%sx03%sx03comx00x00x01x00x01' % ( st1[0], st1[1]) for i in range(11): t = timeit('send()', 'from __main__ import send', number=1) print(t) if num == 4: msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03%sx04%sx03comx00x00x01x00x01' % ( st1[0], st1[1]) for i in range(11): t = timeit('send()', 'from __main__ import send', number=1) print(t) if num == 5: msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03%sx05%sx03comx00x00x01x00x01' % ( st1[0], st1[1],) for i in range(11): t = timeit('send()', 'from __main__ import send', number=1) print(t) if num == 6: msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03%sx06%sx03comx00x00x01x00x01' % ( st1[0], st1[1]) for i in range(11): t = timeit('send()', 'from __main__ import send', number=1) print(t) if num == 7: msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03%sx07%sx03comx00x00x01x00x01' % ( st1[0], st1[1]) for i in range(11): t = timeit('send()', 'from __main__ import send', number=1) print(t) if num == 8: msg = b'x5cx6dx01x00x00x01x00x00x00x00x00x00x03%sx08%sx03comx00x00x01x00x01' % ( st1[0], st1[1]) for i in range(11): t = timeit('send()', 'from __main__ import send', number=1) print(t)sys.stdout = Logger(u"output.txt") creatXC()

Github代码链接

https://github.com/Promise123/dns/tree/master/dns

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。