Як отримати адресу IPV4 для інтерфейсу від / proc


24

Чи існує чистий простий спосіб отримати IP-адресу для мережевого інтерфейсу /proc, подібно до того, як я можу отримати MAC-адресу для мережевого інтерфейсу?
В ідеалі я б просто набрати cat /proc/<foo>/{interface_name}та отримати 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

Вони з’являються у заздалегідь визначеному порядку; ймовірно, пріоритет, але це можна змінити; крім цього, ні.
Rui F Ribeiro

2
/proc/net/fib_trieнедоступний у моїй системі RHEL 6.6 тут на роботі
villapx

1
@villapx fib_trie немає на ядрах 2.6.
Rui F Ribeiro

Немає можливості пов'язувати 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.