誰もがnetstat -rn、while、read、およびcutコマンドを使用してデフォルトのIPを取得できますか?

誰もがnetstat -rn、while、read、およびcutコマンドを使用してデフォルトのIPを取得できますか?

想像できるように、仮想マシンのデフォルトIPを取得するには、このコマンドを使用する必要があります。 netstat -rn は次の出力を提供します。

Kernel IP routing table
Destination   Gateway        Genmask ...
0.0.0.0       138.248.123.23 ....

138.248.123.23(仮想IP)を取得する必要がありますが、awkまたはsedは使用できません。 whileとreadを使用して出力の3行目を取得できますが、cutコマンドを使用して抽出することはできません。私はこれを試しましたが、netstat -rn | cut -f2 -d$'\t'成功しませんでした...

ベストアンサー1

私はそれに従うのか分からないが、これは?

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 enp0s25
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlp3s0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 enp0s25
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlp3s0
192.168.100.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr1
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

# netstat -rn | while read dest gw rest ; do [[ "${dest}" == "0.0.0.0" ]] && echo "${gw}" ; done
192.168.1.1
192.168.1.1

おすすめ記事