これは以前に尋ねられて答えられたと確信していますが、私はそれを見つけることができなかったので、うまくいけば、これは少なくとも誰かを正しい場所にリンクするでしょう。
特定のホストに到達するために使用するローカルインターフェイスとIPアドレスを確認したい。たとえば、ボックスに3つのアダプタを接続していて、3つすべてが異なるネットワークに接続している場合、my.local.intranetに到達するために3つ(具体的にはそのIPアドレス)が使用されていることを知りたい(この場合、それはvpnトンネルインターフェイスです)。これはifconfigまたはtracerouteの仕事だと思いますが、正しいスイッチを見つけることができませんでした。
OSX 10.7(Darwin)を実行しています
編集:簡単にアクセスできるように、これは私がトリックを終わらせるために書いたものです:
ifconfig `route get <Host> | grep "interface: " | sed "s/[^:]*: \(.*\)/\1/"` | grep "inet " | sed "s/.*inet \([0-9.]*\) .*/\1/"
任意の改善/最適化は大歓迎です。
「ルート」を試して、さまざまなインターフェースの宛先ネットワークとゲートウェイを示すルーティングテーブルを印刷できます。
IPアドレスを使用してもインターフェイスを簡単に特定できない場合は、「traceroute」を実行し、ルートを実行した後、最初のホップを確認し、「ルート」からの関連付けられたゲートウェイと比較します。これがインターフェイスです。
#route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
145.67.4.0 switch47 255.255.255.0 U 0 0 eth0
192.168.1.0 localrouter 255.255.255.0 U 0 0 eth1
#traceroute <destination>
1 switch47.ba.foo.com (145.67.4.1) 0.5 ms .....
2 xxxxx.xxx.xxxx (xxx.xxx.xxx.xxx) 0.Xms. ...
route -n get www.yahoo.com
私はOS x 10.6.8を実行しています
ip route get
を使用すると、指定した宛先に使用されるルートを検索して出力できます。出力には、インターフェイスと送信元アドレスが含まれている必要があります。
% ip route get 8.8.8.8
8.8.8.8 via 172.16.4.1 dev eth1 src 172.16.4.36
これが正しいかどうかはわかりませんが、netstatがそれを行う可能性があります。確立された接続のローカルアドレスが表示されます。
# netstat -nt
Proto Recv-Q Send-Q Local Address Foreign Address State
...
tcp 0 0 192.168.1.61:44114 64.34.119.101:80 ESTABLISHED
tcp 0 0 192.168.1.61:36036 107.21.205.201:80 ESTABLISHED