Вы можете написать простую программу с циклом, который начинает ждать UDP-пакеты и отправляет их содержимое в место назначения многоадресной рассылки (или использовать такой инструмент, как socat ).
Обратите внимание, чтоTTL имеет разное значение в одноадресных и многоадресных пакетах, поэтому вам придется установить TTL в соответствии с правилами порога многоадресной рассылки:
- 0: ограничено одним и тем же хостом.Не выводится никаким интерфейсом.
- 1: ограничено одной подсетью.Не будет переадресован маршрутизатором.
- <32: ограничен одним сайтом, организацией или отделом. </li>
- <64: ограничен одним и тем же регионом. </li>
- <128: ограничено тем же континентом. </li>
- <= 255: неограниченная область действия.Глобальный. </li>
Вы не указываете язык программирования, который хотите использовать, но обратите внимание, что интерфейс сокетов доступен для большинства языков программирования, поэтому вы можете использовать его для программирования этого цикла.
Например, в Java вы должны использовать экземпляр java.net.MulticastSocket вместо экземпляра java.net.DatagramSocket, поскольку только MulticastSocket позволяет вам устанавливать TTL с помощью public void setTimeToLive(int ttl)
.Такой метод не существует с DatagramSocket.
В любом случае, без программирования вы можете использовать инструмент командной строки socat следующим образом:
Мы предполагаем, что вы слушаете порт1234 и хотите отправить поток данных получателю многоадресной рассылки 224.0.2.3 по тому же порту:
% socat UDP4-RECV:1234 UDP-SENDTO:224.0.2.3:1234,ip-multicast-ttl=128