Маршрутизатор открывается снаружи по 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