Вопрос: Поиск общедоступного IP-адреса в сценарии оболочки


Я могу найти свой IP-адрес, используя команду ifconfig или hostname -i.

Но как я могу найти свой публичный IP-адрес?

(У меня есть статический публичный IP-адрес, но я хочу найти его с помощью команды unix)


38
2017-10-06 05:16


Источник


вы пытаетесь сделать это программно? - Andrew Keith
да в сценарии оболочки - shantanuo
Вы используете Linux, MacOSX, FreeBSD и т. Д.? Вывод «ifconfig» отличается для этих разных ОС, а команда «ip» не существует в MacOSX. Вы ищете IP-адрес своего компьютера (вам понадобится сценарий оболочки для анализа ifconfig или что-то еще) или ваш маршрутизатор (могут работать сайты ниже)? - Stefan Lasiewski


Ответы:


curl ifconfig.me

curl ifconfig.me/ip  (только для ip)

curl ifconfig.me/all  (для получения дополнительной информации требуется время)

Для получения дополнительных команд посетите: http://ifconfig.me/#cli_wrap


48
2018-06-01 04:47



Как насчет адресов IPv6? - Matt3o12
Эта ссылка мертва. Вы можете использовать это вместо этого: curl http://checkip.amazonaws.com/ - Farhan.K
@ Farhan.K, пожалуйста, опубликуйте это как ответ, так как это, вероятно, лучший ответ. Если вы этого не сделаете, я буду упоминать ваше имя, предлагающее это - Aliostad
@Aliostad не стесняйтесь публиковать его :) - Farhan.K
@ Farhan.K argh, защищенный: / - Aliostad


Вы можете запросить myip.opendns.com, от OpenDNS. dig @208.67.222.220 myip.opendns.com


26
2017-11-10 01:01



Это круто. Для любой более легкой для запоминания версии вы можете ввести dig @resolver1.opendns.com myip.opendns.com, Или в Windows: nslookup myip.opendns.com resolver1.opendns.com, - Michael Kropat
Что сработало лучше для меня: dig @208.67.222.220 myip.opendns.com +short чтобы получить непосредственно ip без необходимости проходить весь ответ. - Christopher Chiche


dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short

dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short

dig -4 @resolver1.opendns.com -t a myip.opendns.com +short


Обратите внимание, что вышеизложенное работает только для IPv4 (ни один из этих резольверов даже не имеет IPv6 в настоящее время, но если вы опустите -4 и явный -t a, то вы рискуете разрушить его в будущем (за исключением Google txt, который может работать на IPv6 один день, если он правильно включен Google)).

Обратите внимание, что myip.opendns.com разрешается только через resolver1.opendns.com, а не с auth1.opendns.com - поэтому они, похоже, делают DNS-захват DNS и человека в середине своего собственного доменного имени! Таким образом, вы не можете использовать его для поиска IP случайного резольвера, поскольку resolver1.opendns.com не является авторитетным myip.opendns.com,

Обратите внимание, что o-o.myaddr.l.google.com выглядит как наиболее гибкий и перспективный подход; это даже хорошо для проверки того, поддерживает ли ваш DNS-реверсор экспериментальное расширение EDNS0 для клиентской подсети (для которого очень мало разрешений)

% dig @8.8.8.8 -t txt o-o.myaddr.l.google.com +noall +answer +stats | tail -8
;; global options:  printcmd
o-o.myaddr.l.google.com. 60     IN      TXT     "74.125.189.16"
o-o.myaddr.l.google.com. 60     IN      TXT     "edns0-client-subnet 88.198.54.0/24"
;; Query time: 13 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Dec  8 20:38:46 2013
;; MSG SIZE  rcvd: 114

17
2017-12-09 04:46



@ Matt3o12 <Я нашел OpenDNS: dig +short AAAA myip.opendns.com @2620:0:ccc::2, - bufh


Очень простой anwser, если у вас есть доступ в Интернет:

curl icanhazip.com

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

Более надежным способом является выбор известного надежного DNS-сервера (в идеальном варианте DNSSEC) и запрос имени хоста с ним, при условии, что ваш DNS-сервер содержит такие записи;

dig @trustworthysource.com +short `hostname`

12
2017-11-10 00:13





Я написал простой и быстрый веб-сервис для этого.

curl ident.me

Вы можете запросить свой IPv4:

curl v4.ident.me

Или IPv6:

curl v6.ident.me

И API документирован http://api.ident.me/


8
2018-01-03 22:34





В одну сторону: http://www.whatismyip.com/


7
2017-10-06 05:17



второй путь: ipchicken.com - bobby
Или, если вы хотите использовать XML API, ip-address.domaintools.com/myip.xml, Я увидел один, который возвращает текст. - ceejayoz
Четвертый путь: moanmyip.com - MikeyB
Следуйте правилам, иначе вы ничего не получите. whatismyip.com/faq/automation.asp - Ladadadada


Если

  1. у вас есть один публичный IP-адрес и
  2. вы напрямую подключены к Интернету (нет NAT / прокси / VPN и т. д.),

то вы можете просто проанализировать вывод ifconfig для IP-адресов интерфейсов (часть «inet addr:»), чтобы получить список IP-адресов всех ваших интерфейсов. Один IP-адрес, который не находится в частном диапазоне (см. http://en.wikipedia.org/wiki/IP_address#IPv4_private_addresses ) является вашим общедоступным IP-адресом.

Тот же список можно также получить через

ip addr show

который может быть проще разобрать.

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


5
2017-10-07 00:59