如果 Centos 上有多个 NIC,那么检测私有 LAN NIC 名称的强大方法是什么?

如果 Centos 上有多个 NIC,那么检测私有 LAN NIC 名称的强大方法是什么?

我正在使用以下内容来检测私有 LAN NIC。

export PRIVATE_LAN=`ip a|grep "inet 192"|tr -s ' '|cut -d' ' -f8`

从长远来看,这是否可靠?这确实取决于 ip 命令的格式。

答案1

假设你将“私有”定义为“拥有 192.168.xx 范围内的 IP 地址”(不是192.xxx!),则可以使用:

ip -json addr show to 192.168.0.0/16 | jq -r ".[].ifname"

(可能有多个这样的接口。也可能没有这样的接口。)

如果你尚未jq安装:

ip -brief addr show to 192.168.0.0/16 | awk '{print $1}'

答案2

我想到了一个更好的方法:

    grep DEVICE `grep -l "IPADDR=192" /etc/sysconfig/network-scripts/ifcfg-*`|cut -d'=' -f2

或不带反引号:

    grep -l "IPADDR=192" /etc/sysconfig/network-scripts/ifcfg-*|xargs grep DEVICE|cut -d'=' -f2

相关内容