Если я проверю с помощью Google , я могу увидеть мой публичный IP. Есть ли что-то в командной строке Ubuntu, которое даст мне тот же ответ?
networking
kfmfe04
источник
источник
notify-send
.ifconfig eth1 | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*inet *([^ ]+).*/\2/p}'
где eth1 - интересующее сетевое устройство, вы можете опустить строку 'et1', чтобы показать все ips всех адаптеров. Вместо этого\2
вы можете написать,\1 \2
чтобы показать имена каждого адаптера тоже.Ответы:
Если вы не находитесь за маршрутизатором, вы можете узнать это с помощью
ifconfig
.Если вы находитесь за маршрутизатором, то ваш компьютер не будет знать об общем IP-адресе, поскольку маршрутизатор выполняет преобразование сетевых адресов. Вы можете спросить у какого-нибудь веб-сайта, какой ваш публичный IP-адрес используется,
curl
илиwget
извлечь из него нужную вам информацию:или короче
источник
curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Другие возможности перечислены здесь: go2linux.org/what-is-my-public-ip-address-with-linuxДля поиска внешнего ip вы можете использовать внешние веб-сервисы или системные методы. Чем проще пользоваться внешним сервисом, тем более что
ifconfig
основанные решения будут работать в вашей системе, только если вы не находитесь заNAT
. эти два метода были обсуждены ниже подробно.Нахождение внешнего IP с использованием внешних сервисов
Самый простой способ - использовать внешний сервис через браузер командной строки или инструмент загрузки. Поскольку
wget
по умолчанию доступно в Ubuntu, мы можем использовать это.Чтобы найти свой ip, используйте
Вежливость :
Вы также можете использовать
lynx
(браузер) илиcurl
вместоwget
незначительных изменений вышеупомянутой команды, чтобы найти ваш внешний ip.Используя,
curl
чтобы найти IP:Для лучшего форматированного вывода используйте:
Более быстрый (возможно , самый быстрый) способ использования
dig
с вOpenDNS
качестве распознавателя:Скопировано из: https://unix.stackexchange.com/a/81699/14497
Нахождение внешнего IP без использования внешних сервисов
Введите следующее в своем терминале:
В приведенном выше, замените
<interface_name>
на имя вашего фактического интерфейса, например:eth0
,eth1
,pp0
, и т.д. ...Пример использования:
Введите следующее в своем терминале (это получает имя и IP-адрес каждого сетевого интерфейса в вашей системе):
Пример использования:
NB: выходы являются ориентировочными, а не реальными.
Предоставлено: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
ОБНОВИТЬ
LANG=c
был добавлен кifconfig
основному использованию, так что он всегда дает вывод на английском языке, независимо от настроек локали.источник
sudo apt-get install wget
-w
опцию curl вместо echo :)curl -w '\n' ident.me
Моим любимым всегда было:
просто, легко набрать.
Сначала вам нужно будет установить curl;)
Если ifconfig.me не работает, попробуйте icanhazip.com и или ipecho.net
или же
источник
ifconfig.me
кажется немного медленнее, чемipecho.net
.curl
но естьwget
:wget -U curl -qO- ifconfig.me
icanhazip.com мой любимый.
Вы можете запросить IPv4 явно:
Если у вас нет,
curl
вы можете использоватьwget
вместо:источник
Я нашел все, чтобы быть раздражающим и медленным, поэтому я написал свое. Это просто и быстро.
Его API находится на http://api.ident.me/
Примеры:
источник
time curl http://checkip.amazonaws.com
->0.91s
vs.241s
forident.me
Давайте просто помолимся, aws не сработает;)Вы можете использовать DNS-запрос вместо HTTP-запроса, чтобы узнать ваш публичный IP:
Он использует
resolver1.opendns.com
DNS-сервер для разрешения магическогоmyip.opendns.com
имени хоста в ваш IP-адрес.источник
curl icanhazip.com
. Среднее поcurl
версии: 174мс. Среднее значение для DNS-версии: 9 мс. ~ В 19 раз быстрее См. Также: unix.stackexchange.com/a/81699/8383curl
сам медленнее, чемdig
. Даже если бы они были переписаны так, чтобы быть как можно более похожими,curl
они все равно были бы медленнее; он использует HTTP ( включая DNS) иdig
использует только DNS.Amazon AWS
Образец вывода:
Я люблю его, потому что:
источник
Я использую:
Да, вы можете иметь IP :-)
источник
curl icanhazip.com
иногдаwget
это единственный доступный, но иногда нетwget
и доступен, иcurl
это ваш единственный вариант (например, OS / X). В любом случаеcurl icanhazip.com
это почти так же просто, как иcurl ifconfig.me
Введите это точно, нажмите Enterтам , где указано:
telnet ipecho.net 80
EnterGET /plain HTTP/1.1
EnterHOST: ipecho.net
EnterBROWSER: web-kit
EnterEnter
Это вручную отправляет запрос HTTP, который вернет ваш IP в нижней части
HTTP/1.1 200 OK reply
Пример вывода:
источник
Еще один быстрый (может быть, самый быстрый, относительно)
источник
Для этого был изобретен STUN . Как клиент вы можете отправить запрос общедоступному серверу STUN и вернуть ему IP-адрес, который он видит. Что-то вроде низкоуровневого whatismyip.com, так как он не использует HTTP и умно созданных DNS-серверов, а невероятно быстрый протокол STUN.
С помощью
stunclient
Если вы
stunclient
установили (apt-get install stuntman-client
в Debian / Ubuntu), вы можете просто сделать:где
A.B.C.D
- IP-адрес вашей машины в локальной сети иW.X.Y.Z
серверы IP-адресов, которые веб-сайты видят снаружи (и тот, который вы ищете). Используяsed
вы можете уменьшить вывод выше только IP-адрес:Однако ваш вопрос заключался в том, как найти его с помощью командной строки, что может исключить использование клиента STUN. Так что мне интересно ...
С помощью
bash
Запрос STUN может быть ручной, отправлен на внешний сервер STUN использованием
netcat
и быть после обработаны с использованиемdd
,hexdump
иsed
таким образом:Эхо определяет двоичный запрос STUN (0x0001 указывает на запрос привязки), имеющий длину 8 (0x0008) с файлом cookie 0xc00cee и некоторыми вставленными данными из wireshark. Только четыре байта, представляющие внешний IP, взяты из ответа, очищены и напечатаны.
Работает, но не рекомендуется для производственного использования :-)
PS Многие STUN-серверы доступны, так как это базовая технология для SIP и WebRTC. Использование одного из Mozilla должно быть безопасным с точки зрения конфиденциальности, но вы также можете использовать другое: список серверов STUN
источник
У меня есть глупый сервис для этого по telnet. Что-то вроде этого:
Не стесняйтесь использовать его.
источник
Вы можете прочитать веб - страницы , используя только Баш, без
curl
,wget
:источник
checkip.amazonaws.com
является самым быстрым для меняДля тех из нас, у кого есть доступ к нашим маршрутизаторам при входе в систему, использование сценария для запроса маршрутизатора о его IP-адресе в глобальной сети является наиболее эффективным способом определения внешнего IP-адреса. Например, следующий скрипт python распечатывает внешний IP-адрес для моего маршрутизатора Medialink MWN-WAPR300N:
Обратите внимание, что это не очень безопасно (как в случае с незашифрованными учетными данными и входом в большинство маршрутизаторов), и, конечно, не является переносимым (необходимо изменить для каждого маршрутизатора). Однако это очень быстрое и совершенно разумное решение в физически защищенной домашней сети.
Чтобы настроить скрипт для другого роутера, я рекомендую использовать дополнение tamperdata в firefox, чтобы определить, какие HTTP-запросы делать.
источник
router = subprocess.check_output(['ip', '-o', 'ro', 'list', '0.0.0.0/0']).split()[2]
.Они получат локальные IP-адреса:
или для более короткого вывода:
также
и, вероятно,
Это должен получить внешний IP
NB. Если вы не против установки
curl
, это также:источник
ifconfig | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*addr: *([^ ]+).*/\1,\2/p}'
распечатает локальные интерфейсы и соответствующие IP-адреса V4ifconfig | sed -nre '/^[^ ]+/{N;N;s/^([^ ]+).*addr: *([^ ]+).*addr: *([^ ]+).*/\1,\2,\3/p}'
- IP версии 4 и 6.UPnP может запросить множество домашних маршрутизаторов:
Затем извлеките IP-адрес из ответа.
источник
Если вы используете DD-WRT, то это работает для меня:
или же
Где 192.168.1.1 - IP-адрес шлюза / маршрутизатора в локальной сети маршрутизатора DD-WRT.
Компонент -s означает молчание (то есть не отображать информацию о ходе скручивания).
источник
Если вы установили Lynx в Ubuntu типа
источник
curl bot.whatismyipaddress.com
тоже работаетиспользовать
ip
!затем найдите соответствующий адаптер (нет
lo
, и обычноeth0
) и найдите IP-адрес рядомinet
.источник
Может быть, я немного опоздал, но Инси может сделать это довольно легко.
устанавливать
inxi
Затем выполните следующую команду
Пример с моей информацией, заблокированной с помощью
z
опции для копирования и вставки на сайты, подобные этому:Где написано
<filter>
, где появится ваш WAN IP, IPv4, MAC-адрес и т. Д.источник
Просто создайте трассировку для любого веб-сайта или услуги.
Строка 2 всегда кажется моим публичным IP-адресом после того, как он проходит через мой маршрутизатор.
Итак, сделайте команду bash.
И вывод ...
Я не думаю, что полагаться на сценарии PHP и подобная практика является хорошей практикой.
источник
Команда без зависимостей, кроме 8.8.8.8, являющейся GOogle DNS:
источник