본문 바로가기
Python

sniff()함수를 이용한 패킷 스니퍼 구현하기.

by 웹하는빡통 2020. 2. 6.

지난 시간때 scapy를 이용하여 간단한 스니퍼를 구현해보았다. 

이번 시간에는 scapy에서 제공하는 sniff()함수를 이용하여 패킷 스니퍼를 구현해보자. 

 

소스코드.

※ 부가 설명.

sniff()가 캡처한 패킷을 MAC 주소 계층인 데이터링크 계층부터 TCP/DUP 계층까지 보여준다. 

1. packet : sniff()가 캡처한 패킷임 prn 인자로 지정된 함수의 인자로 전달함.

2. packet[0][0] : MAC 주소 계층임. 

3. packet[0][1]: IP 계층임. packet[IP]로도 접근 가능함. 

4. packet[0][2]: TCP, UDP, ICMP 계층임. 각각 packet[TCP], packet[UDP], packet[ICMP]로 접근이 가능함. 

 

IP 계층의 src,dst의 값을 얻고자 한다면 위와 같이 접근하면 된다.

처음 부분이 version이고 마지막 부분이 src,dst이다. 

 

 

실행 결과.

scapy에서 제공하는 sniff()를 이용하면 보다 강력한 패킷 스니퍼를 구현 할 수 있다.

댓글