Solution 1 :
Utilisez ip route
pour ça. Par exemple :
ip route show to match 198.252.206.16
Solution 2 :
Option plus courte :
ip route get 172.29.42.94
Solution 3 :
Oui, comme le suggère Michael Hampton, utilisez ip route
. Si vous ne voulez que l'interface, utilisez ceci
ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}'
Par exemple :
# ip=8.8.8.8
# iface=$( ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}' )
# echo $iface
eth1