Первые несколько результатов на Google все походят на хорошие варианты:
Ну, при запуске вы можете транслировать другое сообщение со случайным (но отслеживаемым) значением, затем ждать этого сообщения, чтобы узнать свой собственный адрес, с этого момента вы можете отправлять обычные сообщения , игнорируя ваши сообщения.
getsockname
( документация по функциям ) может обнаружить локальный IP-адрес, связанный с конкретным сокетом. Если вы вызовете это в сокете, который используете для отправки широковещательной рассылки, вы должны увидеть тот же IP-адрес, который вы увидите возвращенным recvfrom
.
Найдите параметры scoket и посмотрите, работают ли они: IP_MULTICAST_LOOP, IP_BLOCK_SOURCE
В Linux вы можете получить IP-адрес данного интерфейса с помощью ioctl с параметром SIOCGIFADDR
. Однако я не думаю, что это работает для Windows. Для этого вам придется сделать что-нибудь глупое, например , это .