Я собираю пакет из сети и пытаюсь разобрать его в моей программе python и отображать исходный MAC, MAC-адрес назначения и протокол каждого пакета в нем состоит из.Я получаю сообщение об ошибке: 'type' object не имеет атрибута '__getitem__'
произошла ошибка в последней строке: "печать (" Протокол: "стр [протокол], "Время жить:", ул [TimeToLive])"
Мой код:
#!usr/bin/python
import pcapy
from struct import*
pcap_file=pcapy.open_offline("single.pcap")
count=1
while count:
print("Packet #:",count)
count=count+1
(header,payload)=pcap_file.next()
l2hdr=payload[:14]
l2data=unpack("!6s6sH",l2hdr)
srcmac="%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:" %(ord(l2hdr[0]),ord(l2hdr[1]),ord(l2hdr[2]),ord(l2hdr[3]),ord(l2hdr[4]),ord(l2hdr[5]))
dstmac="%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:" %(ord(l2hdr[6]),ord(l2hdr[7]),ord(l2hdr[8]),ord(l2hdr[9]),ord(l2hdr[10]),ord(l2hdr[11]))
print("source MAC:",srcmac,"Destination MAC:",dstmac)
ipheader=unpack('!BBHHHBBH4s4s',payload[14:34])
timetolive=ipheader[5]
protocol=ipheader[6]
print("Protocol:",str[protocol],"Time to live:",str[timetolive])
Просьба уточнить код стиля в стиле кода –
@AlexFung Я собираю пакет из сети и пытаясь разобрать его в моей программе python и отображать исходный MAC-адрес, MAC-адрес назначения и протокол, в который каждый пакет состоит из него. .... Однако это полный код, который я написал: –
@PrashuPratik, пожалуйста, включите то, что вы сказали в комментарии в своем вопросе, также. Кроме того, исправьте тег кода. – Himal