Я хотел бы получить обработанный результат с помощью tshark или wireshark и использовать его в python, который, как мне кажется, отлично подходит для формата .json. Сейчас я использую:
ssh root@ip tcpdump -i eth0 -w - | tshark -i - -Tjson
для получения сетевого пакета от удаленной системы, поскольку в удаленной системе есть только tcpdump, больше не может быть установлено программное обеспечение. -w - означает вывод в stdout и -i - означает чтение из stdin. Теперь я могу видеть вывод json в терминале в реальном времени, но я хотел бы получить объект json в python и обработать его. Я пытаюсь написать этот код в alpha.py:
import sys
for line in sys.stdin:
print line
и используйте команду ниже, чтобы получить вывод:
ssh root@ip tcpdump -i eth0 -w - | tshark -i - -Tjson | python3 alpha.py
и вывод выглядит так:
[
{
"_index": "packets-2019-04-30",
"_type": "pcap_file",
"_score": null,
"_source": {
"layers": {
"frame": {
"frame.encap_type": "1",
"frame.time": "Jan 1, 1970 08:14:05.382776000 HKT",
"frame.offset_shift": "0.000000000",
"frame.time_epoch": "845.382776000",
"frame.time_delta": "0.000000000",
"frame.time_delta_displayed": "0.000000000",
"frame.time_relative": "0.000000000",
"frame.number": "1",
"frame.len": "111",
Да, каждая «строка» - это просто строка вывода, но не полная строка json. Кстати, вышеприведенный вывод не для чтения из stdin, а из файла .pcap для удобства:
tshark -r a.pcap -Tjson | python3 alpha.py
Сейчас я в замешательстве, но многие люди предлагают мне идеи. Теперь я хотел бы сделать это более понятным, поэтому я публикую этот пост. Оригинальный пост здесь: Как переслать данные, обработанные Wireshark, на python? в каком методе?
и большое спасибо @Ente https://stackoverflow.com/users/3215929/ente
Я с нетерпением жду решения. Спасибо.