it-swarm-ru.tech

Командная консоль для получения IP-адреса?

Есть ли команда bash, чтобы найти IP-адрес для Ubuntu? Мне нужно найти IP-адрес, чтобы я мог ssh в машину позже.

25
opierce

/sbin/ifconfig -a

32
mpbloch

Ты можешь использовать:

/bin/ip addr
26
Robert Swisher

Если у вас есть внутренний адрес, проверьте

curl http://myip.dnsomatic.com

может быть хорошей идеей для оболочек Unix.
Или просто вставьте этот URL в свой браузер.


Если вы получили другой ответ от "ifconfig -a "результат,
ifconfig дал ваш внутренний адрес, который, вероятно, не будет работать извне.


Даже если все выглядит нормально, у вас может быть установлен брандмауэр, который запрещает входящие ssh подключения.
В этот момент вы должны попробовать порт интереса из браузера на машине,

http://www.canyouseeme.org/

Это подтвердит подключение через,

  • внешний IP-адрес (показывает его вам на этой странице)
  • NAT, портовые форварды
  • Брандмауэры
19
nik

/bin/hostname -i

19
James
13
chickeninabiscuit
/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'

Если вам нужен ваш внутренний адрес, добавьте ваш интерфейс после ifconfig, например,.

 /sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
9
Johan

Если вы находитесь за NAT и вам нужен публичный IP, используйте это:

wget -q -O - checkip.dyndns.org | sed -e 's /. Текущий IP-адрес: //' -e 's /<. $ //"

взяты из: http://www.go2linux.org/what-is-my-public-ip-address-with-linux

6
JakeRobinson

Если у вас есть несколько интерфейсов, может быть полезно указать, какой из них вы хотите IP. если вы хотите IPV4-адрес интерфейса 'eth0':

ip addr show dev eth0 | grep "inet " | awk '{ print $2 }' 

если вы хотите IPV6-адрес интерфейса 'eth0':

ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }' 

если вы хотите искать IP между двумя общими интерфейсами ноутбука, wlan0 и eth0:

CURRENT_IP=''
for INTERFACE in wlan0 eth0; do
    if [ -z $CURRENT_IP ]; then
        CURRENT_IP=$(ip addr show dev $INTERFACE | grep "inet " | awk '{ print $2 }')
    fi
done
4
LoreLLo

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

Dig + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220

Если вы используете OpenDNS для вашего DNS-сервера, вы можете сократить его до:

Копай + коротко myip.opendns.com

Вы также можете использовать эту команду.

локон http://myip.dnsomatic.com
3
Brad Gilbert

Просто сверните это страница :

$ curl wtfismyip.com/text

3
mansi
LOCAL_IP=`/bin/hostname -I | sed 's/ //g'`
2
Mohammed Saqib Rajput

Вот одна строка, которая работает также в Linux и OS X и возвращает первый адрес, который не является локальным:

ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'

Отправьте кредиты на https://stackoverflow.com/a/13322549/99834

2
sorin

Самый простой способ сделать это, вероятно,

ifconfig eth0

при условии, что у машины есть один IP-адрес в проводном интерфейсе по умолчанию - вам может понадобиться

ifconfig wlan0

если это по WiFi.

1
David North
ip address show scope link

Он покажет вам IP-адрес живых - имеет ссылки - интерфейсы. Но это не команда bash. Bash вообще не может знать об IP и сети.

1
Saabi

Я понимаю, что вы хотите подключить удаленную машину с Ubuntu, которая имеет динамический IP-адрес. Зайдите на сайт dyndns.org и откройте бесплатный аккаунт. Затем на удаленной машине вам необходимо установить динамический инструмент IP.

Sudo aptitude install dyndns-client

так что вы можете SSH удаленного компьютера через

ssh [email protected]

Поэтому после настройки вам никогда не понадобится IP-адрес удаленной машины.

1
rainman

Вот что я использую:

LC_ALL=C /sbin/ifconfig | awk '
    /inet addr/ {
        gsub("addr:","");
        if(($2!="127.0.0.1") && ($2!="0.0.0.0") && ($2!=""))
            { print $2 };
    }'
1
jlliagre

если вам нужен только один IP-адрес данного интерфейса, вы можете сделать:

ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2);  print $2 }' 
1
DmitrySemenov

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

  • _Dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \"_

Вы можете использовать Dig(1) опции, такие как _-4_ или _-6_, чтобы специально искать адрес IPv4 или IPv6; Google предоставит ответ в записи типа TXT, которая будет заключена в кавычки при представлении Dig; если вы хотите впоследствии использовать переменную с такими утилитами, как traceroute, вы должны использовать что-то вроде tr (1) для удаления указанных кавычек.

Другие параметры включают _whoami.akamai.net_ и _myip.opendns.com_, которые отвечают с записями A и ​​AAAA (вместо TXT, как в приведенном выше примере от Google), поэтому они не требуют удаления кавычек:

  • _Dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short_

  • _Dig -4 @resolver1.opendns.com -t any myip.opendns.com +short_

  • _Dig -6 @resolver1.opendns.com -t any myip.opendns.com +short_

Вот пример сценария, который использует все параметры выше для установки переменных:

_#!/bin/sh
IPANY="$(Dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv4="$(Dig -4 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv6="$(Dig -6 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
AKAMv4="$(Dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)"
CSCOv4="$(Dig -4 @resolver1.opendns.com -t a myip.opendns.com +short)"
CSCOv6="$(Dig -6 @resolver1.opendns.com -t aaaa myip.opendns.com +short)"
printf '$GOOG:\t%s\t%s\t%s\n' "${IPANY}" "${GOOGv4}" "${GOOGv6}"
printf '$AKAM:\t%s\n$CSCO:\t%s\t%s\n' "${AKAMv4}" "${CSCOv4}" "${CSCOv6}"
_

Если вы ищете частный IP-адрес или набор всех IP-адресов, назначенных блоку, вы можете использовать некоторую комбинацию ifconfig (в BSD и GNU/Linux ), _ip addr_ (в GNU/Linux), hostname (параметры _-i_ и _-I_ в GNU/Linux) и netstat чтобы увидеть, что происходит.

0
cnst

Однажды я сыграл в гольф извлечение IP-адреса в Linux:

http://www.catonmat.net/blog/golfing-the-extraction-of-ip-addresses-from-ifconfig/

0
Peter Krumins