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


24

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

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

Ответы:


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?
фра-сан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.