取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
