2009-05-27 2 views
8

У меня есть компьютер в небольшой сети, поэтому мой ip 192.168.2.100.Получение моего IP-адреса

Я пытаюсь получить свой настоящий ip. Я загружаю клиент no-ip, но это просто похоже на массу неприятностей для такой простой вещи.

Я создал этот скрипт php, который получил страницу http://www.ip-adress.com/ и получил ip-адрес, который он мне дал.

Есть ли более простой способ? Или используйте C, WSH или что-то еще. Или, если есть более простой способ в php, скажите, пожалуйста.

Когда я получу ip, я загружу его на свой ftp-сайт, чтобы я мог видеть ip с работы.

+0

Скрежет некоторых внешних сервисов, как вы уже сделали, вероятно, достаточно хорош. Это может быть даже единственный способ. Ваш маршрутизатор и/или модем в Интернете будут знать ваш реальный ip. Я не знаю, как вы программно взаимодействуете с этим. – Albert

+6

http://www.whatismyip.org/ предоставляет более простую страницу для соскабливания. – Albert

+1

Для чего нужен ваш IP? Если вы хотите статический адрес, используйте DynDNS или аналогичный. После этого вы можете установить серверы для своих нужд (удаленный контроль, HTTP/FTP/SSH ...) – schnaader

ответ

12

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

2

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

0

То, как вы это делаете, вероятно, так же хорошо, как и любой другой.

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

3

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

+0

Хорошая идея :) Простая и простая. – AntonioCS

1

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

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

0

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

Вы могли бы посмотреть на это ссылка

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

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

0

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

  • Автоматизируйте загрузку ip-адреса .ком страницы и разобрать его
  • Посмотрите на DynDNS
2

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

0

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

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

Только два способа спросить кого-то другого. Как ?:

  • Задайте свой NAT-маршрутизатор (потому что он сам выполняет перевод в общедоступный IP-адрес), извлекая и проанализировав правую страницу на сайте администратора вашего маршрутизатора. Вероятно, самый надежный и справедливый.
  • Спросите у внешнего хоста, как он вас видит, выбирая и анализируя публичную службу, такую ​​как http://dynamic.zoneedit.com/checkip.html. Пример в сценарии VB: here.
1

Когда мне нужно, чтобы проверить мой публичный адрес IP, мне нравится этот сайт:

http://www.whatismyip.global/

Сайт держит история ваших IP-адресов. Для меня очень полезно!

Смежные вопросы