Cara mendapatkan alamat IPV4 untuk antarmuka dari / proc

24

Adakah cara bersih dan sederhana untuk mendapatkan alamat IP untuk antarmuka jaringan /proc, mirip dengan cara saya bisa mendapatkan alamat MAC untuk antarmuka jaringan?
Idealnya saya cukup mengetikkan cat /proc/<foo>/{interface_name}dan mendapatkan alamat IPv4.

Saya lebih suka tidak menjalankan apa pun selain cat.

razeh
sumber

Jawaban:

23

Di bawah /procdirektori, Anda juga dapat menemukan alamat IPv4 di tabel Pangkalan Informasi Penerusan, di/proc/net/fib_trie

Tabel ini cukup dapat dimengerti hanya melakukan cat, pertama datang Main:dan kemudianLocal:

cat /proc/net/fib_trie

atau untuk melihat jaringan, alamat IP dan netmask Anda:

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       
Rui F Ribeiro
sumber
1
Apakah ada cara untuk mendapatkan antarmuka untuk setiap alamat IP?
razeh
Mereka muncul dalam urutan yang ditentukan sebelumnya; mungkin prioritas, tetapi itu bisa diubah; selain itu, tidak.
Rui F Ribeiro
2
/proc/net/fib_trietidak tersedia di sistem RHEL 6.6 saya di sini di tempat kerja
villapx
1
@villapx fib_trie tidak ada di kernel 2.6.
Rui F Ribeiro
Tidak ada cara untuk mengaitkan alamat ip dengan antarmuka di fib_trie.
ZioByte
0
$ awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"
Allah
sumber
2
Selamat datang di U&L! Kenapa <<< "$(</proc/net/fib_trie)"bukannya yang sederhana </proc/net/fib_trie?
fra-san