2016-06-19 2 views
0

저는 파이썬을 사용하여 우분투 네트워크의 모든 IP 패킷을 캡처하고 싶습니다. 아래 코드를 사용하여 이더넷 헤더가있는 모든 패킷을 얻었습니다. 이더넷 헤더를 제거하고 IP 패킷 만 직접 가져올 수있는 방법은 무엇입니까?우분투에서 원시 IP 패킷을 캡처하려면 어떻게해야합니까?

s = socket.socket(socket.AF_PACKET , socket.SOCK_RAW , socket.ntohs(0x0003)) 
while True: 
    packet = s.recvfrom(65565) 
+0

에서 [이더넷 프레임 포맷] (https://en.wikipedia.org/wiki/ : 여기 다음, 자신의 정보의 요약을 보여, 10 개 IP 패킷을 캡처 PCAP 파일로 저장하는 예이다 이더넷 프레임 (https://en.wikipedia.org/wiki/Ethernet_frame)을 가지고 있다면 페이로드 (IP 패킷)를 쉽게 얻을 수 있습니다. –

+0

감사합니다. 하지만 이더넷 패킷을 가져온 후 다른 프로세스를 사용하는 대신 원시 IP 패킷을 직접 가져 오는 방법이 있습니까? –

답변

0

socket (AF_INET, SOCK_RAW, IPPROTO_RAW)here (C에서) 당신에게

socket (PF_PACKET, SOCK_RAW, htons (ETH_P_ALL)) 당신에게

이 예있다 계층 2 원시 socket`를 얻을 것이다 IP 레이어 원시 소켓을 얻을 것이다.

+0

내 마지막에는 작동하지 않습니다. 아마 그것은 C에서만 작동합니까? –

+0

원시 소켓은 언어와 관련하여 OS가 제공합니다. 두 C 모두 똑같은 시스템 호출을해야합니다. 높은 권한으로 응용 프로그램을 실행하고 있습니까? – Malt

+0

내 프로그램에서 같은 줄을 사용하고 있습니다 : 소켓 = 0 소켓 소켓 (socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs (0x0003)) 및 오류가 발생했습니다 .. _sock = _realsocket (family, type, proto) 소켓. 오류 : [Errno 1] 작동이 허용되지 않습니다.이 매개 변수 대신 무엇을 사용해야합니까? –

2

사용자가 네트워크 패킷을 보내고, 스니핑하고, 해부하고 단조 할 수있게 해주는 도구 인 scapy을 살펴 보시기 바랍니다. sniffing 단락은 아마 당신이 찾고있는 것입니다.

$ scapy 
Welcome to Scapy (2.3.2) 
>>> pkts = sniff(filter='ip', count=10) 
>>> print len(pkts) 
10 
>>> pkts.nsummary() 
0000 Ether/IP/TCP 31.13.90.2:https > 192.168.1.14:63748 PA/Raw 
0001 Ether/IP/TCP 192.168.1.14:63748 > 31.13.90.2:https A 
0002 Ether/IP/TCP 192.168.1.14:63748 > 31.13.90.2:https PA/Raw 
0003 Ether/IP/TCP 31.13.90.2:https > 192.168.1.14:63748 PA/Raw 
0004 Ether/IP/TCP 192.168.1.14:63748 > 31.13.90.2:https A 
0005 Ether/IP/UDP 192.168.1.21:48007 > 192.168.1.255:32412/Raw 
0006 Ether/IP/UDP 192.168.1.21:49808 > 192.168.1.255:32414/Raw 
0007 Ether/IP/UDP 192.168.1.11:64817 > 192.168.1.255:32412/Raw 
0008 Ether/IP/UDP 192.168.1.11:64819 > 192.168.1.255:32414/Raw 
0009 Ether/IP/UDP 192.168.1.11:49670 > 239.255.255.250:ssdp/Raw 
>>> wrpcap("temp.cap",pkts) 
>>> 
+0

효과가있었습니다. 감사! –

+0

도움이 되니 기쁩니다! – kardaj

관련 문제