Разобрать информацию UDP с помощью tshark (Wireshark) или Python

Я передаю UDP-пакеты между двумя машинами и слушаю их на третьей машине. Я вижу пакеты в Wireshark, и мне нужен простой способ получить часть «Данные» пакетов UDP. Мне удалось сбросить информацию о пакете в файл с помощью tshark.

C:>tshark -V -R "udp" > C:/test.txt

Однако это распечатывает все в пакете, и я хочу распечатать только часть «Данные». Есть ли способ сделать это?

Кроме того, если есть способ записать это в Python, это тоже было бы здорово. Я установил следующий код:

Host = "myip"
Port = 5000
While True:
    sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    sock.bind((Host,Port))
    data = sock.recv(4096)
    sock.close()

Когда я реализую этот код, используя мой «слушающий» компьютер, данные не принимаются. Когда я реализую этот код, используя один из двух моих взаимодействующих компьютеров, «Запрошенный адрес недействителен в его контексте»

Имейте в виду, я вижу, что все данные передаются между двумя компьютерами в Wireshark на моем «слушающем» компьютере.

Спасибо!


person mcfly    schedule 02.11.2011    source источник
comment
Вы можете (если вам разрешено) отредактировать свой пост, чтобы код выглядел красиво.   -  person AndreaG    schedule 06.11.2011


Ответы (1)


Макфлай,

Если вы хотите сниффить и отображать/анализировать пакеты в Python, вам подойдет Scapy. Просто отключите tshark, так как Scapy может автоматически делать 99% того, что tshark может делать из коробки.

person dc5553    schedule 28.04.2012