[scapy] pcap 파일안에 들어있는 전체 패킷 갯수는?
어떤 .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하는 방법만 조금 바꿔서 해봤다 (확인하고 싶은 분은 아래 버튼 클릭)
다음 코드는 완전 동일한 일을 하는 것을 import하는 방법만 조금 바꿨다. 'scapy.all'에서 rdpcap 함수만 import했다. 그럼 위의 코드에서 처럼 sc.rdpcap()을 사용하지 않고 rdpcap()를 사용하면 된다.
비슷하게 import 부분은 "from scapy.all import *"로 해도 되는데 이렇게 하면 Spyder에서 불필요한 warning message가 나와서 제일 처음 코드처럼 사용한다. 실행 결과는 당연 똑같음!
# getTotalNumPackets2.py
from scapy.all import rdpcap
pkts = rdpcap('test.pcapng')
print('Total packets =', len(pkts))
'PYTHON' 카테고리의 다른 글
Python 로그(log) 함수 (0) | 2021.03.02 |
---|---|
Pyinstaller를 PyCharm에 연결해서 사용하는 방법 (0) | 2019.01.29 |
[scapy] import error 해결 방법 (0) | 2019.01.24 |
[scapy] pcap 파일안에 UDP packet은 몇개있을까? (1) | 2019.01.24 |
댓글
이 글 공유하기
다른 글
-
Python 로그(log) 함수
Python 로그(log) 함수
2021.03.02 -
Pyinstaller를 PyCharm에 연결해서 사용하는 방법
Pyinstaller를 PyCharm에 연결해서 사용하는 방법
2019.01.29 -
[scapy] import error 해결 방법
[scapy] import error 해결 방법
2019.01.24 -
[scapy] pcap 파일안에 UDP packet은 몇개있을까?
[scapy] pcap 파일안에 UDP packet은 몇개있을까?
2019.01.24