Получение моего публичного IP через API

66

Есть ли публичный API от какой-то крупной компании, чтобы получить доступ к публичному ip из программы?

Я нашел http://ip-address.domaintools.com/myip.xml, что именно то, что я хочу, но, к сожалению, он блокирует Python urllib, а также многие другие http-библиотеки, если вы не обманываете пользователя-агента (что-либо, что не может быть вызвано API вообще).

Проблема в том, что мне нужны эти данные для некоторой библиотеки с открытым исходным кодом, поэтому мы должны играть по правилам. Я также знаю, что я могу просто сделать что-то вроде print $_SERVER[REMOTE_ADDR], но я не хочу трафик сервера всем, кто использует мою библиотеку.

Итак, есть ли что-то вроде URL-адреса выше, но настоящий API, который позволяет роботам?

  • 0
    связанные: обнаружение публичной ИС программно
  • 0
    У Duck Go есть открытый метод определения вашего IP-адреса. Я подробно описал это здесь, так как этот вопрос закрыт, и я не могу добавить ответ: stackoverflow.com/a/33743758/901641
Показать ещё 2 комментария
Теги:
ip

8 ответов

90
Лучший ответ

Хотя не от крупных компаний, все они должны работать:

curl icanhazip.com
curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0-9\.]*\).*/\1/g'
host -t a dartsclink.com | sed 's/.*has address //'
curl curlmyip.com
curl ifconfig.me # this has a lot of different alternatives too, such as ifconfig.me/host

Источник

  • 1
    Это потрясающе! Большое спасибо, особенно. для dyndns один, это будет делать!
  • 3
    icanhazip.com возвращает самый чистый результат imho
Показать ещё 5 комментариев
33

Вы можете получить свой IP-адрес и целую кучу другой информации из моей службы http://ipinfo.io:

$ curl ipinfo.io
{
  "ip": "67.188.232.131",
  "hostname": "c-67-188-232-131.hsd1.ca.comcast.net",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "loc": "37.385999999999996,-122.0838",
  "org": "AS7922 Comcast Cable Communications, Inc.",
  "phone": 650
}

Если вы хотите только IP:

$ curl ipinfo.io/ip
67.188.232.131

Это также работает для других полей, например:

$ curl ipinfo.io/org
AS7922 Comcast Cable Communications, Inc.

Более подробная информация доступна на http://ipinfo.io/developers

  • 2
    Не поддерживает HTTPS
  • 0
    Все платные планы имеют поддержку HTTPS. См. Ipinfo.io/pricing
13

В json формате, дающем более подробную информацию, например, latlong, country, city, user-agent:

https://www.trackip.net/ip?json

или

https://www.trackip.net/ip

2

Я использую этот, легко запоминающийся и более короткий, чем другие:

$ curl ifconfig.me

PROTIP: Помните, что если вы используете curl в сценариях оболочки, вы должны использовать опцию -s, иначе она распечатает таблицу выполнения загрузки.

$ echo `curl -s ifconfig.me`

  • 2
    Я перехожу из ifconfig.me в ipinfo.io из-за медлительности
1

вы можете использовать API веб-сервиса, который выполняет следующие действия:

see example of service: http://ip-api.com and usage: http://whatmyip.info

Удачи!!!

  • 0
    ip-api.com/json - самый быстрый способ, и у него лучшее время отклика. 150 запросов / минута
0

Если вы не можете установить завиток в вашей системе, то вариант wget:

wget -qO- curlmyip.com
0

Да, вы можете попробовать с whoisthisip.com

http://whoisthisip.com/HRAS/  Зарегистрируйтесь на whoisthisip.com, чтобы получить информацию об IP-адресе веб-сайта, такую ​​как местоположение города, название страны и доменное имя.

После входа в систему вам будет предоставлен ссылочный код и URL-адрес для просмотра и получения информации о IP-адресе для зарегистрированного вами сайта.

0

Доступ к ip-информации с помощью этого api:

http://cms.javabrown.com/jws/ws.php?service=IpService

JSONP:

http://cms.javabrown.com/jws/ws.php?service=IpService&callback=?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню