Lösung 1:
Verwenden Sie ip route
dafür. Zum Beispiel:
ip route show to match 198.252.206.16
Lösung 2:
Kürzere Option:
ip route get 172.29.42.94
Lösung 3:
Ja, wie Michael Hampton vorschlägt, verwenden Sie ip route
. Wenn Sie nur die Schnittstelle möchten, verwenden Sie diese
ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}'
Zum Beispiel:
# ip=8.8.8.8
# iface=$( ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}' )
# echo $iface
eth1