ifconfig
や ip 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番目のフィールドだけ取り出す。