2014-02-13 5 views
1

-s 100 매개 변수를 사용하여 tcpdump로 WiFi 트래픽을 캡처합니다. 이는 패킷의 헤더 만 캡처한다는 의미입니다. 나는 Scapy와 .pcap 파일 및 프로세스를로드 할 때전체 패킷 길이 Scapy

내가 할 :

pkts = rdpcap(pcapfile) 
totalbytes = 0 
for pkt in pkts: 
    totalbytes += len(pkt) 

을 그러나, 나는 len(pkt) 나에게 전체 패킷 길이를 제공하지 않습니다 (프레임 길이을하고, 캡처를 절단하고로), 그것은 나를 캡쳐 된 패킷 길이 줄 것이다. 어떻게 실제 패킷 길이를 얻을 수 있습니까? 추가

는 : 내가 전에 어떤 경우에했던 것처럼, 나는 와이어 샤크에 PCAP 파일을 열고 관심있는 16 진수 값을 검색합니다. 그러나이 경우 (frame.len) 내가 찾고있는 값이 표시되지만 wireshark가 전체 패킷을 캡처하지 않고이 실제 패킷 길이를 얻는 방법을 찾을 수 없습니다.

답변

2

rdpcap 함수는 패킷 읽기에 PcapReader 클래스를 사용합니다. 불행하게도이 클래스는 pcap 파일에서 찾을 수있을지라도 read_packet 메소드에서 찾고있는 정보를 삭제합니다. 따라서 RawPcapReader을 직접 사용해야합니다.

totalbytes = 0 
for pkt, (sec, usec, wirelen) in RawPcapReader(pcapfile): 
    totalbytes += wirelen 
+0

놀라운 헬무트! 정말 고마워! 미친 것처럼 검색 할 때 정보가 없습니다. 나는 이것이 다른 사람들을 돕기를 바랍니다. – EnriqueH