ip

取ipv4地址

方式1:

[root@CentOS-7-88 ~]# ip -4 -o route get 1 | awk '{print $7}'
192.168.88.88
参数解释:
1. ip
 新版 Linux 网络配置万能工具,用来替代早已废弃的 ifconfig/route。
2. -4
 只操作 / 只显示 IPv4 相关结果,自动屏蔽 inet6 记录。
3. -o
 --oneline 的缩写,把每条记录强制压成一行,字段之间用空格分隔,方便 awk 取列。
4. route get 1
 让内核做一次「真正向外发包」的路由查询。
 1 可以是任意公网地址(这里用 1.0.0.1 也行),内核会返回「从哪块网卡、用哪个源地址」才能到达这个目标。
 因此返回的就是「主外网卡」的信息,天然跳过 lo、docker、virbr 等只能本地通信的接口。
5. awk '{print 7}'
 在 -o 单行输出里,第 7 列正好是 src 后面的 IPv4 地址。
 不同版本内核顺序几乎不变,已广泛兼容。
© 版权声明
THE END
点赞13 分享