글 작성자: astrocosmos

어떤 .pcap 파일안에 들어있는 전체 패킷 갯수는 어떻게 알아낼까? 

Python scapy를 이용해서 아래와 같이 단 몇줄로 쉽게 알아낼 수 있다. Python version은 3.7이고, IDE는 spyder3를 이용했다.


# getTotalNumPackets.py

import scapy.all as sc

pkts = sc.rdpcap('test.pcapng')

print('Total packets =', len(pkts))


단 세줄로 구현할 수 있는데 첫번째로 scapy의 모든 class를 import하고 sc로 별칭을 정해준다.

그리고 두번째 줄에서 scapy의 rdpcap() 함수를 이용해서 test.pcapng를 parsing하여 모든 패킷들을 pkts에 넣어준다. 여기서 주의할 점은 test.pcapng가 getTotalNumPackets.py와 같은 디렉토리안에 있어야 한다. 

rdpcap()은 생각하고 있는대로 read pcap file 정도가 되겠지? 마지막으로 세번째 줄에서 전체 패킷 갯수를 출력한다. 실행 결과는 아래와 같이 나온다.


Total packets = 7910


test.pcapng 파일 안에 7910개의 패킷이 들어 있는 것을 알 수 있다. 실제 pcap파일을 열어보면 가장 왼쪽에 정렬되는 'No'이 1부터 7910까지 있는 것을 확인 할 수 있다.


이 다음은 같은 일을 하는 code를 import하는 방법만 조금 바꿔서 해봤다 (확인하고 싶은 분은 아래 버튼 클릭)


728x90