クロスプラットフォームコマンドを使用してローカル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
1000
IPアドレスを取得しています。私が試した他のすべてのシステムでは、出力は常に次のようになります。
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'