Назад | Перейти на главную страницу

Есть ли сетевой идентификатор для хоста в LAN?

Маршрутизатор открывается снаружи по IP, например 66.249.89.104 и многие хосты могут подключаться к нему, чтобы сформировать локальную сеть.

Мой вопрос :

Есть ли способ идентифицировать конкретный хост в этой локальной сети?

Все, что я пробовал, - это догадки, которые, без сомнения, терпят неудачу:

ping host_lan_ip@66.249.89.104
Ping request could not find host host_lan_ip@66.249.89.104. Please check the name and try again.

Я думаю, поскольку каждый хост в локальной сети может получать свои пакеты извне маршрутизатора, ДОЛЖЕН быть способ идентифицировать каждый хост, но что это?

ОБНОВИТЬ Как добиться Перенаправление порта кроме настройки в роутере?

ОБНОВИТЬ

Теперь я думаю UPnP способ пойти, но есть ли рабочий образец для этого?

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

UPnP - это способ настройки переадресации портов. Затем вам нужно решить проблему с тем, какой порт. Если вы хотите поговорить с несколькими клиентами за одним и тем же NAT, они не могут все использовать один и тот же порт, поэтому вам нужен способ узнать, какой клиент использует какой порт. Центральный сервер, на котором клиенты могут указывать себя, обычно является способом сделать это (например, игровые серверы, перечисленные в лобби, главный сервер отслеживает IP / порт, чтобы все остальные могли подключиться)

Быстрый поиск в Google обнаружил библиотеку C ++ UPnP, которую, возможно, стоит попробовать:

http://www.koders.com/cpp/fid2A3FF8255A7B67758E80E0423AA46F9DD8FD734A.aspx?s=setwindowshookex

и Windows UPnP API:

http://msdn.microsoft.com/en-us/library/aa382303%28VS.85%29.aspx