Comando Shell para obter o endereço IP?

22

Existe um comando bash para encontrar o endereço IP de uma caixa do Ubuntu? Eu preciso encontrar o endereço IP para que eu possa ssh na máquina mais tarde.

    
por opierce 27.07.2009 / 20:19

19 respostas

31

/sbin/ifconfig -a

    
por 27.07.2009 / 20:20
25

Você pode usar:

/bin/ip addr
    
por 29.07.2009 / 00:12
19

Se você tiver um endereço interno em uso, verifique

curl http://myip.dnsomatic.com

pode ser uma boa ideia em shells unix.
Ou apenas insira essa URL em seu navegador.

Se você obtiver uma resposta diferente do resultado " ifconfig -a ",
o ifconfig deu seu endereço interno - o que provavelmente não funcionará de fora.

Mesmo que tudo pareça bem, você pode ter um firewall que não permita conexões ssh recebidas.
Nesse momento, você deve experimentar a porta de interesse de um navegador na máquina em

http://www.canyouseeme.org/

Isso confirmará a conectividade,

  • endereço IP externo (mostrando a você nessa página)
  • NAT, encaminhamentos de porta
  • Firewalls
por 27.07.2009 / 20:23
18

/bin/hostname -i

    
por 28.04.2010 / 15:19
13
 curl icanhazip.com

tee hee!

De link

    
por 12.08.2009 / 09:15
8
/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'

Se você precisar de seu endereço interno, anexe sua interface após ifconfig, por exemplo,

 /sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
    
por 28.07.2009 / 14:57
6

Se você está por trás de um NAT e precisa do IP público, use:

wget -q -O - checkip.dyndns.org | sed -e 's /. Endereço IP Atual: //' -e 's / <. $ //'

retirado de: link

    
por 27.07.2009 / 20:25
3

Se você precisa descobrir qual é o endereço IP do seu roteador, você pode executar este comando.

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

Se você estiver usando o OpenDNS para o seu servidor dns, poderá encurtá-lo para:

dig +short myip.opendns.com

Você também pode usar este comando.

curl http://myip.dnsomatic.com
    
por 28.07.2009 / 06:24
3

Se você tiver várias interfaces, pode ser útil especificar qual delas deseja IP. se você quiser o endereço IPV4 da interface 'eth0':

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

se você quiser o endereço IPV6 da interface 'eth0':

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

se você quiser procurar um IP entre duas interfaces comuns de um laptop, wlan0 e 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
    
por 06.04.2011 / 20:14
2

Aqui está uma linha que também funciona no Linux e no OS X e retornará o primeiro endereço que não é local:

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

Envie créditos para link

    
por 19.06.2013 / 16:26
2

Basta enrolar esta página :

$ curl wtfismyip.com/text

    
por 29.03.2015 / 22:12
1

A maneira mais simples de fazer isso é provavelmente

ifconfig eth0

assumindo que a máquina tenha um único endereço IP na interface com fio padrão - você pode precisar

ifconfig wlan0

se estiver em WiFi.

    
por 27.07.2009 / 20:27
1
ip address show scope link

Ele mostrará o endereço IP da vida - tem interfaces de link. Mas não é um comando bash. Bash não tem capacidade de saber sobre IP e rede.

    
por 28.07.2009 / 15:54
1

O que eu entendo é que você deseja conectar uma máquina remota ubuntu que possui ip dinâmico. Vá para o site dyndns.org e abra uma conta gratuita. Então, na máquina remota, você precisa instalar uma ferramenta ip dinâmica.

sudo aptitude install dyndns-client

para que você possa usar a máquina remota ssh via

ssh [email protected]

Portanto, após a configuração, você nunca precisará do endereço IP da máquina remota.

    
por 29.07.2009 / 00:02
1

Aqui está o que estou usando:

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

se você precisa apenas de um único IP de determinada interface, você pode fazer:

ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2);  print $2 }' 
    
por 26.05.2014 / 04:33
1
LOCAL_IP='/bin/hostname -I | sed 's/ //g''
    
por 24.02.2017 / 07:28
0

Uma vez eu joguei a extração do endereço IP no Linux:

link

    
por 29.07.2009 / 23:34
-2

A maneira mais simples de obter o endereço IP:

Command: ifconfig

Exemplo:

stalinrajindian@ubuntuserver:~$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.30.3.27  netmask 255.255.255.0  broadcast 172.30.3.255
        inet6 fe80::a00:27ff:fe8b:9986  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:8b:99:86  txqueuelen 1000  (Ethernet)
        RX packets 4876  bytes 1951791 (1.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 775  bytes 73783 (73.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 78  bytes 5618 (5.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 78  bytes 5618 (5.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
por 16.04.2018 / 09:02