2017-02-14 40 views
0

저는 Python과 dpkt 모듈이 처음이므로 약간의 도움이 필요합니다. 나는 가능한 한이 주제에 대해 많은 연구를 해왔지만 아무 소용이 없었다. 관리자는 PCAP 파일을 구문 분석하고 트래픽 유형 (HTTP, FTP 등 ...)에 관계없이 IP 주소를 텍스트 파일에 작성하는 프로그램을 작성하기를 원합니다. 샘플 코드가 온라인에 게시 된 이후로 기본 사항을 파악했지만 .pcap 파일의 첫 번째 항목을 넘어 구문 분석하는 방법을 모르겠습니다.dpkt를 사용하여 PCAP 파일에서 여러 IP 가져 오기

가장 가까운 것은 "zip"명령을 사용하려고했지만 작동하지 않았고 하나 이상의 IP를 인쇄하는 방법을 알 수 없었습니다. 아무리해도 실망 스럽습니다. 아무도 내게 어떤 포인터를 줄 수 있습니까? 나는 scapy와 같은 다른 모듈을 사용하는 것에 반대하지 않는다.

답변

0

한 가지 방법은 .pcap을 읽고 각 패킷을 반복하고 IP를 추출하는 것입니다. 아마도 다음과 같을 것입니다 :

from scapy.all import * 

fob = rdpcap('test_pcap.pcap') 
cap = [] 

for pkt in fob: 
    if pkt.haslayer(IP): 
     if pkt[IP].src not in cap: 
      cap.append(pkt[IP].src) 

    if pkt.haslayer(ARP): 
     if pkt[ARP].psrc not in cap: 
      cap.append(pkt[ARP].psrc) 

print(cap)