特定のホストへのルートのインターフェースを見つける


14

マルチホームLinuxマシンで、特定のホストにパケットを送信するために使用されるネットワークインターフェイスを確認するにはどうすればよいですか?プログラムでこれを行う必要があり、自分でルーティングテーブルを解析して解釈することは避けたいです。


それがルーティングテーブルの目的です。そうでないとは思いません。
GioMac

回答:




5

はい、マイケル・ハンプトンが示唆するように、を使用しますip route。インターフェイスのみが必要な場合は、これを使用します

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

例えば:

# ip=8.8.8.8
# iface=$( ip -o route get $ip | perl -nle 'if ( /dev\s+(\S+)/ ) {print $1}' )
# echo $iface
eth1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.