Posted at

Linuxでインターネットに接続しているIPアドレスを調べるワンライナー

ifconfigip address だとループバックなど複数のネットワークインタフェースの情報が表示されるので、そのうちのどれがインターネットに接続しているものなのかを特定するのがちょっと面倒。

いろいろ調べた結果、以下のようにするのがよさそう。

ip route get 8.8.8.8 | head -1 | awk '{print $7}'

補足

$ ip route get 8.8.8.8

8.8.8.8 via 192.168.11.1 dev enp0s31f6 src 192.168.11.105 uid 1000
cache

これで8.8.8.8 につながるときの経路のIPアドレスがわかる。

複数ある場合があるので、head -1 で最初のひとつに絞る。

awkで7番目のフィールドだけ取り出す。