python 내 패킷 캡쳐를 위한 라이브러리로 pypcap을 통해 손쉽게 캡쳐 및 가공이 가능합니다.
다만 pypcap에 대한 자료가 많지않아서 원하는 함수나 기능을 사용하기엔 제약이 있습니다 :/
pypcap installation
pip install pypcap
※ libpcap-dev 의존성을 가지고 있으므로 pypcap 설치전에 libpcap-dev가 설치되어 있어야 함
apt-get install libpcap-dev
pypcap 설치 후 python 실행 > import pcap 을 통해 에러가 발생하지 않는다면 정상적으로 설치가 된 것입니다.
Example Code
import pcap
import re
import dpkt
import socket
sniffer = pcap.pcap(name=None,promisc=True,immediate=True,timeout_ms=50) # name=eth, None 일경우 모든 default / promisc는 모든 eth에서 패킷 수집
sniffer.setfilter('tcp and port 80') # set packet filter
for t, p in sniffer:
eth = dpkt.ethernet.Ethernet(p)
ip = eth.data
tcp = ip.data
try:
if len(tcp.data) > 0:
req = dpkt.http.Request(tcp.data) #Request패킷만 추출
print("----------------------------------------------------------------")
print(req) # 패킷 출력
print("----------------------------------------------------------------")
except:
pass
Example Code 실행 시, 다음과 같이 패킷 캡쳐 확인
출처 : https://saynot.tistory.com/entry/Python-Network-PyPCAP-%EA%B3%B5%EB%B6%80
'NetWork' 카테고리의 다른 글
Iptables port forwarding (0) | 2021.04.29 |
---|---|
RTP (Realtime Transport Protocol) (0) | 2013.03.04 |
VMware network (0) | 2012.07.10 |
tcphdr , tcphdr?? (0) | 2012.07.09 |
ARP_Spoofing (2) | 2012.07.06 |