Python 3.4 очень простой сниффер пакетов

Как сделать сниффер пакетов на выбранном сервере и порту? Что-то вроде Wpe Pro или RPE, но я хочу использовать Python и print для написания этих пакетов. Я пробовал это:

import socket

UDP_IP = "xx.xx.xx.xx"
UDP_PORT = xxxx

sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))

while True:
    data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
    print("received message:", data)

но я думаю, что это не может работать (UDP или что-то еще не так?). Как мне это сделать правильно?


person Dino Thu    schedule 18.06.2015    source источник


Ответы (2)


У меня есть рабочий код, который отправляет, а затем получает, и выглядит примерно так:

# set up the UDP socket
connection = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
connection.settimeout(5)

# Send packet by UDP
connection.sendto(request_bytes, (UDP_IP, UDP_PORT))

# Receive response packet
response_bytes = connection.recv(4096)

Может быть, settimeout отсутствует для вас?

person robert    schedule 18.06.2015

pypcap - это упрощенная объектно-ориентированная оболочка Python для _ 2_ - текущая версия tcpdump.org и порт WinPcap для Windows.

Это может сэкономить вам время.

person fferri    schedule 18.06.2015