Получение информации о локальном UDP-сервере в Stack Overflow

Итак, я запустил эту программу на моем Mac, ipMidi, которая позволяет мне отправлять события midi через соединение Ethernet.
Он работает по протоколу UDP и отправляет миди от моей галки Ableton Live.
Я пытаюсь прочитать на той же машине, где работает ipMidi, пакеты из ipMidi в мою программу на C ++, но я не могу понять, как это сделать.
Я уже некоторое время занимаюсь исследованиями и не могу понять, как заставить ipMidi отправлять пакеты на мой локальный хост или прослушивать пакеты, проходящие через мой Ethernet.
Одним из инструментов, которые я обнаружил, был route, но мне не удалось скопировать запись в таблице ip для отправки пакетов в мою прослушивающую программу UDP.
Другой способ, который я нашел для этого, состоял в том, чтобы заставить мою программу присоединиться к группе многоадресной рассылки в ядре в целевом ip и порте из целевого пакета, который я прослушал в ipMidi с помощью wireshark, но это невозможно, потому что связывание говорит мне, что адрес используется.
Так что я действительно мог бы помочь с этим.

Там нет кода, я знаю, но это больше похоже на теоретическую вещь, чем на проблему реализации.

Надеюсь, я все объяснил, мой английский не самый лучший.

Спасибо за ваше время.

1

Решение

Кажется, вы открыты для разных техник. Я не сетевой эксперт, и я совсем не эксперт по iptables, но я бы попытался найти «тройник», эквивалентный iptables. Я нашел эту ссылку, которая может быть полезна для вас.

https://unix.stackexchange.com/questions/15870/iptables-port-mirroring

РЕДАКТИРОВАТЬ: еще один, который может быть полезным
http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/

Еще один взлом, который приходит мне в голову, заключается в том, что, если вы можете контролировать, куда ipMidi отправляет пакет, вы можете отправить их на локальный хост на определенный порт, имея netcat открыть для прослушивания на этом порту, а затем с помощью tee перенаправить вывод в файл и прочитать этот файл с помощью вашей программы C ++. Выход из tee будет, опять же, чтобы netcat который может отправить данные, где вам нравится (другой хост).

Это было бы как:

ipMidi -> localhost -> nc listening -> tee -> nc sending -> destination
-> file -> your program.

Но это всего лишь идея попробовать, если никто не придет с лучшим решением (маловероятно).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]