http://wasm.ru/forum/viewtopic.php?id=24972 http://wasm.ru/forum/viewtopic.php?id=23764 http://wasm.ru/forum/viewtopic.php?id=12494
2FED реальный (public) адрес ты узнаешь только сделав соединение с кем-то внешнтм кто сделает accept() и потом скажет тебе адрес.
этот код сводится вот к чему: Код (Text): InternetOpenUrl(hInet, "http://www.xchg.info/ARTeam/"); то есть скрипт на http сервере.
Как определить ип тут рассказали. Но нету инфы как определить за NAT мы или нет. есть ли к нам конект. Возможно это как то сделать не проверяя себя из вне?
Anvil проверить локальный IP на вхождение в диапазоны, выделенные для внутрисетевого использования (типа 192.168.*.*)?
А также 10.* Anvil Вообще если у вас внутренний ip, то гарантировано что у вас нат, а сможете ли вы слушать, это у же будет зависеть от типа ната, что вам покажет stun client. Если же проброшен конкретный порт, то его и надо тестировать с помощью stun client-а.
задача такая: Есть программа, она открывает порт и слушает его. конект из инета. Вот надо проверить можно ли присоединится к ней из инета (ип:порт) если нельзя то надо чтоб она сказала пользователь что мол соединение закрыто или что то в этом роде. И надо чтоб проверяла сама прога.
Anvil Если не хотите использовать. stun client. То можете сами его реализовать в своей программе. Протокол Stun описан в RFC и прост как 2 копейки. Тем более сам клиент с открытым исходным кодом. Вам про типы NAT надо почитать. Хотя stun client умеет многое. Но все таки он обладает недостатками. Совершенно не знаком с понятием портмэпинга . Да и IPv6 не поддерживает. Если порт закрыт то его можно открыть вернее пробросить через портмэпинг. Портмэпинг можно выполнить через UPNP или PMP.
Берете адрес полученный локально, потом с того же http://cmyip.com/ получаете внешний, сравниваете. По-моему для большинства случаев этого хватит.
это скорей кастыль чем решение. Это всеравно что проверять наличие интернета пингом гугла... Интересен способ узнать все локальным образом.
Эммм… Вышеозначенный stun тоже предполагает наличие внешнего сервера, причём гарантированно не находящегося за одним NAT'ом с клиентом. Знаете, как Vista/Se7en определяет наличие "подключения к Интернет"? Вот не поверите - пингует microsoft.com c определённым интервалом.