Я уверен, что об этом уже спрашивали и на него отвечали раньше, но я не смог его найти, поэтому надеюсь, что это хотя бы свяжет кого-то с нужным местом.
Я хочу узнать мой локальный интерфейс и IP-адрес, используемый для доступа к определенному хосту. Например, если бы у меня было 3 адаптера, подключенных к моему ящику, и все они были подключены к разным сетям, я хотел бы знать, какой из трех (в частности, его IP-адрес) используется для доступа к my.local.intranet (в этом в случае, это будет интерфейс туннеля vpn). Я подозреваю, что это работа ifconfig или traceroute, но мне не удалось найти правильные переключатели.
Я использую OSX 10.7 (Дарвин)
РЕДАКТИРОВАТЬ: Для легкого доступа, вот что я написал, чтобы сделать трюк:
ifconfig `route get <host> | grep "interface: " | sed "s/[^:]*: \(.*\)/\1/"` | grep "inet " | sed "s/.*inet \([0-9.]*\) .*/\1/"
Любые улучшения / оптимизации приветствуются.
маршрут -n получить www.yahoo.com
Я использую os x 10.6.8
Вы можете попробовать "route" напечатать вашу таблицу маршрутизации, которая покажет вам целевые сети и шлюзы для ваших различных интерфейсов.
Если IP-адреса не помогают вам легко определить интерфейс, запустите «traceroute», после запуска route, посмотрите на первый переход и сравните его с соответствующими шлюзами из «route» и вуаля - это ваш интерфейс.
#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. ...
Ты можешь использовать 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