我目前正在python 3.6中进行数据包嗅探器项目,但运行时出现错误。解压效果很好,但是经过两到三个操作后,出现了错误,并且出现了标题中提到的错误。 我是python的新手,这个项目是一种紧急项目。我见过类似的问题,但并没有太大帮助。你能帮我解决这个问题吗?先感谢您 :) 以下是代码:
connec = socket.socket(socket.AF_PACKET,socket.SOCK_RAW,socket.ntohs(3))
while True:
raw_data, addr = connec.recvfrom(65535)
dest_mac, src_mac, eth_proto,data = ethernet_frame(raw_data)
print("\n Ethernet Frame:")
print("Destination:{} Source:{} Protocol:{} ".format(dest_mac, src_mac, eth_proto,data))
if eth_proto == 8:
(version,header_lenght,ttl, proto,src,target,data) = ipv4_packet(data)
print(" IPV4 Packet:")
print(" Version:{}, Header Lenght:{}, TTL:{}".format(version,header_lenght,ttl))
print(" Protocol:{}, Source:{}, Target:{}".format(proto,src,target))
def ipv4_packet(data):
version_header_lenght = data[0]
version = version_header_lenght >> 4
header_lenght = (version_header_lenght & 15) * 4
ttl, proto, src, target = struct.unpack('! 8x B B 2x 4s 4s',data[:20])
return version,header_lenght,ttl, proto, ipv4(src),ipv4(target),data[header_lenght:]
我很抱歉,如果这么长:)