Cách nhận địa chỉ IPV4 cho giao diện từ / Proc


24

Có cách nào đơn giản và dễ dàng để lấy địa chỉ IP cho giao diện mạng không /proc, tương tự như cách tôi có thể lấy địa chỉ MAC cho giao diện mạng?
Lý tưởng nhất là tôi chỉ cần gõ mèo /proc/<foo>/{interface_name}và lấy địa chỉ IPv4.

Tôi thà không chạy bất cứ thứ gì khác ngoài cat.

Câu trả lời:


23

Trong /procthư mục, bạn cũng có thể tìm thấy các địa chỉ IPv4 trong bảng Cơ sở thông tin chuyển tiếp, tại/proc/net/fib_trie

Bảng này khá dễ hiểu khi thực hiện một cách đơn giản cat, đầu tiên là đến Main:và sau đóLocal:

cat /proc/net/fib_trie

hoặc để xem mạng, địa chỉ IP và netmask của bạn:

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
Có cách nào để có được giao diện cho từng địa chỉ IP không?
razeh

Chúng xuất hiện theo thứ tự được xác định trước; có thể ưu tiên, nhưng điều đó có thể được thay đổi; ngoài ra, không.
Rui F Ribeiro

2
/proc/net/fib_triekhông có sẵn trên hệ thống RHEL 6.6 của tôi tại nơi làm việc
Villapx

1
@villapx fib_trie không có trên 2,6 hạt nhân.
Rui F Ribeiro

Không có cách nào để liên kết các địa chỉ IP với giao diện trong fib_trie.
ZioByte

0
$ awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"

2
Chào mừng bạn đến với U & L! Tại sao <<< "$(</proc/net/fib_trie)"thay vì đơn giản </proc/net/fib_trie?
fra-san
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.