Soluzione 1:
Usa ip route
per questo. Ad esempio:
ip route show to match 198.252.206.16
Soluzione 2:
Opzione più breve:
ip route get 172.29.42.94
Soluzione 3:
Sì, come suggerisce Michael Hampton, usa ip route
. Se vuoi solo l'interfaccia, usa questa
ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}'
Ad esempio:
# ip=8.8.8.8
# iface=$( ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}' )
# echo $iface
eth1