네트워크에서 패킷을 캡처하여 파이썬 프로그램으로 파싱하고 원본 MAC, 대상 MAC 및 프로토콜을 각 패킷에 표시하려고합니다 으로 구성되다.'type'객체에 '__getitem__'속성이 없습니다.
오류가 마지막 줄에 발생했습니다 : "인쇄 ("프로토콜 ", STR [프로토콜]"살 시간 ", STR [의 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 네트워크에서 패킷을 캡처하고이를 파이썬 프로그램에 파싱하여 원본 MAC, 대상 MAC 및 프로토콜을 표시합니다. .... 그러나 이것은 내가 작성한 완전한 코드입니다 : –
@PrashuPratik 또한 질문에 언급 된 내용을 포함 시키십시오. 또한 코드 태그를 수정하십시오. – Himal