Как получить адрес IPV4 для интерфейса из / proc

24

Существует ли простой и простой способ получить IP-адрес для сетевого интерфейса /proc, аналогично тому, как я могу получить MAC-адрес для сетевого интерфейса?
В идеале я бы просто /proc/<foo>/{interface_name}набрал cat и получил адрес IPv4.

Я бы предпочел не запускать ничего, кроме cat.

razeh
источник

Ответы:

23

В /procкаталоге вы также можете найти адреса IPv4 в таблице «База пересылочной информации» по адресу/proc/net/fib_trie

Таблица довольно понятна, делая простые cat, сначала идет, Main:а затемLocal:

cat /proc/net/fib_trie

или чтобы увидеть вашу сеть, IP-адреса и маску сети:

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       
Руи Ф Рибейро
источник
1
Есть ли способ получить интерфейс для каждого IP-адреса?
razeh
Они появляются в заранее определенном порядке; возможно, приоритет, но это можно изменить; кроме этого нет.
Руи Ф Рибейро
2
/proc/net/fib_trieне доступен в моей системе RHEL 6.6 здесь на работе
villapx
1
@villapx fib_trie отсутствует в ядрах 2.6.
Руи Ф Рибейро
Нет способа связать IP-адреса с интерфейсом в fib_trie.
ZioByte
0
$ awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"
Бог
источник
2
Добро пожаловать на U & L! Почему <<< "$(</proc/net/fib_trie)"вместо простого </proc/net/fib_trie?
фра-сан