Получение моего IP-адреса - PullRequest
8 голосов
/ 27 мая 2009

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

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

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

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

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

Ответы [ 12 ]

12 голосов
/ 27 мая 2009

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

6 голосов
/ 28 мая 2009

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

3 голосов
/ 27 мая 2009

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

2 голосов
/ 25 ноября 2009

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

http://www.biranchi.com/ip.php

2 голосов
/ 27 мая 2009

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

2 голосов
/ 27 мая 2009

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

1 голос
/ 28 марта 2016

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

http://www.whatismyip.global/

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

1 голос
/ 27 мая 2009

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

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

0 голосов
/ 27 мая 2009

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

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

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

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

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

  • Автоматизировать загрузку ip-adress.com и проанализируйте
  • Посмотрите на DynDNS
...