Temukan antarmuka untuk rute ke host tertentu


14

Pada mesin Linux multihomed, bagaimana saya bisa mengetahui antarmuka jaringan apa yang akan digunakan untuk mengirim paket ke host tertentu? Saya perlu melakukan ini secara terprogram dan saya lebih suka tidak menguraikan dan menafsirkan tabel routing sendiri.


Itulah gunanya tabel routing. Saya tidak membayangkan sebaliknya.
GioMac

Jawaban:




5

Ya, seperti yang disarankan Michael Hampton, gunakan ip route. Jika Anda hanya menginginkan antarmuka, gunakan ini

ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}'

Sebagai contoh:

# ip=8.8.8.8
# iface=$( ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}' )
# echo $iface
eth1
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.