Необходимо определять внешний IP (адрес в Интернете), вне зависимости от конфигурации сети - будь то хоть инет настроен на локальной машине, хоть через внутренний роутер и т.д. Как это реализовать? Есть вариант. Повесить на любом хосте, постоянно, подключенном к инету какой-нибудь скрипт, который бы видел внешний IP и посылал клиенту ответ, а клиент запрашивал бы через определенное время свой же IP
BaGiE gethostbyname --> через структуру hostent получаем IP [add] Вот только с роутером я не проверял (работает с ланом+впн и модемом)
Aspire Объясняю подробно.)) Допустим у меня комп в сети, имеет только адрес типа 172.16.186.100 и прописан шлюз и DNS на маршрутизатор, то что ты увидишь?
Я к тому задал вопрос, что нельзя ли как то узнать IP без внешнего источника. Например, как работают команды tracert и pathping? Они видят промежуточные узлы. Может быть как то средствами ICMP протокола можно определить свой внешний адрес? В общем я в ауте =( Кстати. Эти сервисы, что посоветовали видят не мой реальный IP, а адрес прозрачного проксика провайдера =( Единственный сайт который видит нормально - whatismyip.ru
можно если самому делать tracert или выполнить tracert с выводом в файл и потом его парсить еще как вариант , основывается на том, что smtp траффик наврятли будут проксировать хотя мож и будут , но попробовать стоит приконнектится к почтовому серваку например smtp.mail.ru естественно на 25 порт послать helo в ответ получите helo и ваш внешний IP
SLab tracert выдает ip-адреса "внутренних" интерфейсов машрутизаторов, так как именно на них делается декремент TTL и отправка сообщения о смерти пакета отправителю. [sender] --- [int11 ROUTER1 int12] --- [int21 ROUTER2 int22] --- [int31 ROUTER3 int32] При трассировке от sender'a tracert покажет ip-адреса интерфейсов int11, int21, int31. А нужно узнать ip на интерфейсе int32. Собсно, предложенный вариант с почтовиком должен помочь.
я как понимаю у прова там делается НАТ так вот если парсить лог tracert , то первый попавшийся "белый" адрес будет являться внешним. Сворачивать в НАТ белые адреса никто не будет.
[sender] --- [int11 ROUTER1 int12] --- [int21 ROUTER2 int22] --- [int31 ROUTER3 int32] -------- [int41 ROUTER3 int42] Если принять, что на ROUTER3 включен НАТ и int32 имеет реальный ip, то tracert тебе вернёт ip на интерфейсе int41.