Вы можете проанализировать вывод ip addr
, используя, например, awk
, чтобы найти имя интерфейса с определенным IP-адресом. Например:
ip addr | awk -vtarget_addr=192.168.1.200 '
/^[0-9]+/ {
iface=substr($2, 0, length($2)-1)
}
$1 == "inet" {
split($2, addr, "/")
if (addr[1] == target_addr) {
print iface
}
}
'
Это ищите интерфейс с адресом 192.168.1.200. В моей системе это будет напечатать:
vlan100
Потому что:
$ ip addr show vlan100
5: vlan100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 56:ba:dc:0f:73:69 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.200/32 brd 192.168.1.200 scope global noprefixroute vlan100
valid_lft forever preferred_lft forever
inet 192.168.1.169/24 brd 192.168.1.255 scope global dynamic noprefixroute vlan100
valid_lft 47960sec preferred_lft 47960sec
inet6 fe80::acb6:be79:224e:3062/64 scope link noprefixroute
valid_lft forever preferred_lft forever