Получение моего IP-адреса

Все в HTTP-запросе может быть подделано.

8
задан Ethan Heilman 27 May 2009 в 18:47
поделиться

11 ответов

Нет, более простого пути нет. Ваш компьютер действительно не знает публичный IP-адрес, за которым он стоит - между ним и общедоступным Интернетом может быть любое количество уровней NAT. Все, что ему известно, это то, что он принимает сообщения по адресу 192.168.2.100 и отправляет исходящие сообщения через шлюз по адресу 192.168.2.1. Он не знает, что происходит после того, как пакет попадает на шлюз.

12
ответ дан 5 December 2019 в 05:46
поделиться

На вашем компьютере нет информации о NAT или маршрутизации между ним и Интернетом, кроме того, какой переход является следующим (обычно это внутренний IP-адрес вашего маршрутизатора). Он просто не знает, на каком переходе внутренний адрес транслируется в какой публичный адрес.

Следовательно, не существует простой функции или метода, которые вы могли бы вызвать на любом языке.

Единственные два способа - спросить кого-нибудь еще. . Как?:

  • Спросите свой NAT-маршрутизатор (потому что он сам выполняет преобразование в общедоступный IP-адрес), получив и проанализировав нужную страницу на сайте администратора вашего маршрутизатора. Пожалуй, самый надежный и справедливый.
  • Спросите внешний хост, как он вас видит, получив и проанализировав публичный сервис, такой как http://dynamic.zoneedit.com/checkip.html . Пример сценария VB здесь .
0
ответ дан 5 December 2019 в 05:46
поделиться

Я не могу придумать, как бы вы разрешили свой IP-адрес с точки зрения другой машины. Вот пара мыслей:

  • Автоматизировать загрузку страницу ip-adress.com и проанализируйте ее.
  • Посмотрите DynDNS
0
ответ дан 5 December 2019 в 05:46
поделиться

К сожалению, ваш сервер, скорее всего, будет совершенно не обращать внимания на то, каким выглядит его собственный Внешний адрес (так как он может быть установлен в дальнейшем восходящем потоке через какой-то маршрутизатор / шлюз)

Вы могли взгляните на эту ссылку

http://ip-address.domaintools.com/myip.xml

Это может быть немного проще для синтаксического анализа, чем то, что вы сейчас делаете.

0
ответ дан 5 December 2019 в 05:46
поделиться

Некоторые маршрутизаторы могут сообщать вам свой внешний IP-адрес через UPnP, или, более конкретно, протокол IGD . Если у вас есть маршрутизатор с поддержкой UPnP, вы можете попробовать это. IStaticPortMapping :: get_ExternalIPAddress звучит многообещающе.

Устройства с поддержкой SNMP также могут сообщать вам свои IP-адреса. Запрашиваемый OID: IP-MIB :: ipAdEntAddr .

1
ответ дан 5 December 2019 в 05:46
поделиться

То, как вы это делаете, вероятно, ничуть не хуже других.

Вы говорите, что у вас есть общедоступный FTP-сайт - есть ли у вас там еще и веб-сайт? Другой вариант - предоставить вашему локальному компьютеру доступ к странице php на этом общедоступном сайте. Эта страница php может подтвердить, что это вы, а затем использовать $ _SERVER ['REMOTE_ADDR'] для записи вашего внешнего IP-адреса.

0
ответ дан 5 December 2019 в 05:46
поделиться

Я всегда использую curl http://whatismyip.org , чтобы получить свой публичный IP-адрес, находясь за NAT.

2
ответ дан 5 December 2019 в 05:46
поделиться

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

2
ответ дан 5 December 2019 в 05:46
поделиться

Не совсем то, что вы просили, но все же применимо к тому, что вы хотите. Я устанавливаю GMail Notifier на своем домашнем компьютере и перехожу на страницу активности учетной записи, чтобы узнать, с какого IP-адреса осуществляется доступ к моей учетной записи Google. Надежно, просто и работает.

3
ответ дан 5 December 2019 в 05:46
поделиться

Обратите внимание на изобретение велосипеда, для этого существует стандартный протокол , STUN (с уже существующими реализациями). См. Также Программное обнаружение общедоступного IP-адреса .

6
ответ дан 5 December 2019 в 05:46
поделиться

Вы также можете получить доступ к этой странице, чтобы получить свой IP

http: //www.biranchi.com/ip.php[12143 impression

2
ответ дан 5 December 2019 в 05:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: