Como posso exibir o endereço IP de uma interface?

6

Se eu quiser exibir o endereço IP atribuído a eth1, como posso fazer isso no Bash?

    
por user47556 27.10.2010 / 12:53

7 respostas

11

Tente isso (Linux)

/sbin/ifconfig eth1 | grep 'inet addr:' | cut -d: -f2| cut -d' ' -f1

ou isso (Linux)

/sbin/ifconfig eth0 | awk -F ' *|:' '/inet addr/{print $4}'

ou isto (* BSD)

ifconfig bge0 | grep 'inet' | cut -d' ' -f2

ou isto (Solaris 10)

ifconfig e1000g0 | awk '/inet / {print $6}'

Obviamente, mude o nome da interface para coincidir com a que você deseja obter as informações.

    
por 16.08.2011 / 23:41
6

Uma maneira melhor: obter endereço ip do comando "ip", porque "ifconfig" está desatualizado. Caso contrário, você terá um problema ao usar o "ifconfig", porque a saída do ifconfig depende do idioma.

Eu uso este comando para obter todos os IPs (IPv4):

ip addr show | grep -o "inet [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" | grep -o "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
    
por 05.12.2012 / 09:46
1

talvez isso ajude

ifconfig eth1
    
por 27.10.2010 / 12:58
0

Um forro com sed:

ifconfig wlan0 | sed -En -e 's/.*inet ([0-9.]+).*//p'

Substitua wlan0 pela interface desejada.

    
por 14.11.2017 / 02:07
0

Como mencionado @Manuel, ifconfig está desatualizado e ip é a abordagem recomendada daqui para frente.

ip -f inet addr show eth1

e para usar o @breater do sed ou o awk do @Jason H. para filtrar a saída (dependendo se você quer a máscara)

ip -f inet addr show eth1 | sed -En -e 's/.*inet ([0-9.]+).*//p'

ip -f inet addr show eth1 | awk '/inet / {print $2}'

    
por 10.05.2018 / 14:00
0

Em um sistema Linux:

hostname --all-ip-addresses

fornecerá apenas o endereço IP.

Em um sistema Solaris use:

ifconfig e1000g0 | awk '/inet / {print $2}'
    
por 07.04.2015 / 20:48
-1

Eu tentei a resposta aceita no CentOS 7 , mas isso não funciona.

/sbin/ifconfig eth0 | grep 'inet ' | tr -s ' ' | cut -d" " -f3

funcionou para mim, no caso de alguém estar também com o mesmo problema.

    
por 10.05.2018 / 19:20

Tags