2014-10-25 3 views
0

Я видел, как некоторые приложения автоматически обнаруживали IP-адрес TcpListener в локальной сети и подключались к нему. Из того, что я знаю, IP-адреса локальной сети различны на каждом маршрутизаторе. Например, In мой текущий маршрутизатор мой IP Является:Как автоматически обнаружить IP из запущенного TcpListener в локальной сети

192.168.1.100 

Но в последний маршрутизатор, который я имел раньше это:

192.168.1.2 

Как это возможно, чтобы обнаружить запущенный TcpListener из указанного порта с локального сеть?

+0

Ваш вопрос немного неоднозначен. Вы хотите получить локальный IP-адрес машины, на которой запущен TcpListener? –

+0

@ Jalal225 Да, я ищу, чтобы обнаружить его с другого устройства/ip в той же локальной сети. – 111WARLOCK111

+0

вы не можете узнать IP-адрес другого компьютера, если он не сообщил вам или не подключился к нему (для которого требуется подключение IPEndPoint). –

ответ

0

Вы можете настроить свой сервер так, чтобы он также имел UdpClient (или аналогичный), настроенный для приема трансляций на определенном порту. Затем клиенты могут транслировать сообщение в локальной сети, на которое сервер может отвечать, включая его адрес прослушивания TCP. Затем клиент может использовать этот адрес для фактического подключения TCP-соединения.

Это должно всегда работать в подсети локальной сети. В зависимости от конфигурации вашей локальной сети вы можете получать широковещательные передачи в другие подсети в локальной сети.

Другим возможным подходом (в зависимости от вашего оборудования ЛВС) является использование UPnP для настройки переадресации портов на вашем маршрутизаторе. Затем вы всегда будете подключаться к маршрутизатору, который знал бы, какой компьютер в локальной сети должен получить запрос на соединение.

Смежные вопросы