Obtenha o endereço IP da interface principal no Ubuntu e no Mac

1

Eu preciso escrever um script que obtenha o endereço IP da interface usada para rotas desconhecidas (por exemplo, onde 0.0.0.0/0 é roteado)

Esse script deve funcionar nos sistemas Ubuntu, Debian, Arch e Mac OS sem a necessidade de instalar pacotes extras.

No Ubuntu, eu uso hostname -I , que dá o endereço IP primário. Mas em versões mais antigas do ubuntu, debian e arch e no Mac OS, o -I -Flag não está disponível.

A segunda ideia foi analisar o ifconfig -output, mas como a nomenclatura é muito diferente em cada sistema e em sistemas alemães, por exemplo, não há addr: , mas algo diferente, isso também não funcionará.

Eu preciso disso para escrever um pequeno script para iniciar uma aplicação web e um pequeno servidor Web Python para o servidor do conteúdo estático. O script é então usado pelos nossos designers que mal conseguem codificar alguns html e css, mas não sabem nada sobre o bash.

    
por Tobi 07.10.2015 / 14:56

1 resposta

0

O comando route fornece informações sobre as rotas usadas para acessar diferentes endereços IP e também o nome do dispositivo.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
10.0.0.0        *               255.255.0.0     U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

Acho que o comando está disponível em todos os sistemas que você menciona.

    
por 07.10.2015 / 17:23