
/proc
ネットワークインターフェイスのMACアドレスを取得する方法と同様に、ネットワークインターフェイスのIPアドレスを取得する明確で簡単な方法はありますか?理想的には、catと入力してIPv4アドレスを取得することをお勧めします
。/proc/<foo>/{interface_name}
むしろ他を実行しないでくださいcat
。
答え1
この/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
答え2
$ awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"
答え3
ネットワークアドレスは/proc/net/fib_trie
次のインターフェースに関連付けることができます/proc/net/route
。
$ awk '/^[^I]/ {print $1 " " $2}' /proc/net/route
br0 0001020A
br0 FE01020A
..次を使用して16進ネットワークアドレスを変換します。
$ echo FE01020A | xxd -r -p | hexdump -e '/1 "%u."' | tac -s'.' | sed 's/\.$//'
10.2.1.254
答え4
echo $'g/32 host LOCAL/-1s/\s*|-- //p\n Q'|ed -s /proc/net/fib_trie
10.0.0.20
127.0.0.1
192.168.122.1