「iproute」クロスプラットフォームからローカルIPアドレスを取得する

「iproute」クロスプラットフォームからローカルIPアドレスを取得する

クロスプラットフォームコマンドを使用してローカルIPアドレスを抽出しようとしています。今日まで、私は次のコマンドを使用してきました。

ip route get 1 | awk '{print $NF;exit}'

ただし、出力が次のようip route get 1になるため、Fedora 27では機能しません。

0.0.0.1 via 192.168.1.1 dev en1  src 192.168.0.229 uid 1000
    cache

1000IPアドレスを取得しています。私が試した他のすべてのシステムでは、出力は常に次のようになります。

0.0.0.1 via 192.168.1.1 dev en1  src 192.168.0.229

また、同じ結果でこのコマンドを試しました。

ip route get 255.255.255.255 | sed -n '/src/ s/.*src //p'

ベストアンサー1

すぐ後ろのアドレスを印刷するにはsrc(すべての関連部分が同じ行にあるとします。):

ip route get 1 | sed 's/^.*src \([^ ]*\).*$/\1/;q'

おすすめ記事