我正在使用以下内容来检测私有 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