Недавно мне удалось собрать данные tcp с моей платы Raspberry Pi 3B + в Wireshark на моем локальном компьютере для обработки в реальном времени, но теперь я хотел бы в реальном времени захватить столбец «данные» в разделе «TCP» с помощью python и отправитьданные этих столбцов через TCP-порт к другому приложению, прослушивающему порт 1234.
Я думаю, что я пытаюсь неправильно.Мои попытки показаны ниже:
приведенная ниже команда make wireshark может анализировать tcp-поток другой машины в реальном времени.
ssh root@10.0.1.2 tcpdump -ns 0 -i eth0 "not port 22" | wireshark -k -i -
это работает, и wireshark может работать в режиме реального времени.Я хочу вывести и отобразить некоторые данные в каждом пакете, которые соответствуют моему требованию, в терминальной базе по этой команде, поэтому я пытаюсь отфильтровать мой требуемый столбец, начинающийся с:
ssh root@10.0.1.2 tcpdump -ns 0 -i eth0 "not port 22" | python test.py
и файла test.py, как показано ниже:
import sys
k = 0
try:
for line in iter(sys.stdin.readline, b''):
k = k + 1
print(line)
except KeyboardInterrupt:
sys.stdout.flush()
pass
print(k)
но просто ничего не отображается.
кстати, поток tcp переносится в двоичном режиме.
Я хочу получить некоторые указанные данные вtcp данные в реальном времени (или на 90% в реальном времени) перехватывают tcpdump, но я пробую некоторые способы и не буду работать.
Я также пытаюсь использовать команду, которая позволяет wireshark проводить анализ в реальном времени.время, а затем пересылать данные в скрипты Python, я ищу в Google в течение 2 дней с нулевыми результатами.
Если кто-нибудь достаточно крутой, чтобы помочь мне с этим?Я буду очень благодарен, спасибо!