Como obter o endereço IPV4 para uma interface de / proc

14

Existe uma maneira simples e limpa de obter um endereço IP para uma interface de rede a partir do / proc, semelhante à maneira como posso obter o endereço MAC de uma interface de rede? O ideal seria digitar cat / proc // {interface_name} e obter o endereço IPV4.

Prefiro não executar nada além de gato.

    
por razeh 15.05.2017 / 19:53

2 respostas

9

No diretório /proc , você também pode encontrar os endereços IPv4 na tabela Base de informações de encaminhamento, em /proc/net/fib_trie

A tabela é bastante inteligível, fazendo um mero cat , primeiro vem o Main: e, em seguida, Local:

cat /proc/net/fib_trie

ou para ver sua rede, endereços IP e máscara de rede:

cat /proc/net/fib_trie | grep "|--"   | egrep -v "0.0.0.0| 127."
       |-- 193.136.1.0
       |-- 193.136.1.2
    |-- 193.136.1.255
       |-- 193.136.1.0
       |-- 193.136.1.2
    |-- 193.136.1.255       
    
por 15.05.2017 / 20:16
-3

Isso lhe dará os endereços IP para todas as interfaces no host:

$ ip addr | awk '/^[0-9]+/ { currentinterface=$2 } $1 == "inet" { split( $2, foo, "/" ); print currentinterface ,foo[1] }'
lo: 127.0.0.1
eth0: 10.28.9.29
    
por 15.05.2017 / 20:02

Tags