В настоящее время я работаю над проектом анализатора пакетов в 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:]
Приношу свои извинения, если это так долго:)