我在这里有这个代码:
import socket
raw = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(0x0003))
raw.bind(("mon0", 0x0003))
ap_list = set()
out = open("out.cap", 'w')
while True:
pkt = raw.recvfrom(2048)[0]
if pkt[36:42] not in ap_list:
ap_list.add(pkt[36:42])
print (pkt)
out.writelines(str(pkt))
但输出对我来说有点奇怪。如何让人类可读?
输出示例:
b'\x00!c\xf60\xbe\x807s\xa8\xe5@\x08\x00E\x00\x004\xea\xec@\x00$\x06\xd2\xcck\x15mA\xc0\xa8\x00\x0c\x00P\x90\xee\x9dx\xd9E=\xfd;[\x80\x10\x00no\xc0\x00\x00\x01\x01\x08\n)\xa0w\x10\x00\xd6J\xa8'
更新: 使用这个
decoded = pkt.decode("ISO-8859-1")
我已经设法做我需要的但Wirehark不能很好地读取我的输出文件,我还需要从输出中删除无用的数据
一些帮助?
这是新代码:
import socket
import sys
raw = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(0x0003))
raw.bind((sys.argv[1], 0x0003))
ap_list = set()
out = open("out.cap", 'w')
while True:
pkt = raw.recvfrom(1024)[0]
if pkt[36:42] not in ap_list:
ap_list.add(pkt[36:42])
decoded = pkt.decode("ISO-8859-1")
print(str(pkt[0:20]).split("'")[1])
out.writelines(str(decoded) + "\n")
答案 0 :(得分:0)
在Wireshark中,您应该能够看到正在使用的协议。然后你可以解析它们,例如使用<small class="form-text text-danger" [hidden]="!group.controls[config.name].hasError('required')"></small>
<small class="form-text text-danger" [hidden]="!group.controls[config.name].hasError('minlength')"></small>
<small class="form-text text-danger" [hidden]="!group.controls[config.name].hasError('maxlength')"></small>
包。
- John Zwinck