1
파이썬 (v2.7)에서 scapy (v2.3.3)에 PTPv2 Layer를 추가하고 싶습니다. 필자는 PTP 항목이있는 ptpv2 클래스를 /scapy/layers/inet.py 파일에 추가했습니다 (PTP는 계층 4에 있기 때문에). 필자는 ptpv2 계층을 상위 계층에 바인딩했습니다. scapy 명령 입력scapy에 PTPv2 레이어 추가
bind_layers(Ethernet,ptpv2)
"LS는()"생성 ptpv2 층은 보통, 성공을 나열한다. 하지만 파이썬 명령을 통해 레이어에 액세스하여
는for packet in PcapReader('/media/sf_SharedFolder/test.pcap'):
if packet[ptpv2].sequenceId == anything:
# do sth
다음과 같은 오류가 발생합니다
File "/usr/lib/python2.7/dist-packages/scapy/packet.py", line 817, in __getitem__
raise IndexError("Layer [%s] not found" % lname)
IndexError: Layer [ptpv2] not found
와이어 샤크 파일은 레이어의 프레임을 가지고 -> 이더넷 -> PTP, 나의 바인딩 명령은 바로이어야한다 .
어디서 오류인지 알 수 없습니다.
Pls, 도와주세요!
들으
크리스
"conf.debug_dissector = True"를 추가했습니다. 다음 오류가 발생합니다. 파일 "/usr/lib/python2.7/dist-packages/scapy/fields.py", getfield 의 75 행, return s [self.sz :], self.m2i (pkt, struct. struct.error : unpack에는 길이가 2 인 문자열 인수가 필요합니다. – crappidy
"conf.debug_dissector = True"를 통해서만 오류 정보가 더 이상 표시되지 않습니다. 오류가 여전히 존재합니다. 내 질문을 다른 주제로 편집하지 않았으므로 더 많은 정보를 얻기 위해 질문을 편집했습니다. – crappidy
좋아, 그럼 나는 새로운 질문을한다. – crappidy