Mac-Osx

獲取用於連接特定主機(ip)的介面和ip地址

  • January 5, 2013

我敢肯定這已經被問過並回答過,但我無法找到它,所以希望這至少可以將某人連結到正確的地方。

我想找出我用於到達某個主機的本地介面和 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/"

歡迎任何改進/優化。

您可以嘗試“路由”來列印您的路由表,該表將向您顯示各種介面的目標網路和網關。

如果 IP 地址不能幫助您輕鬆確定介面,請在執行 route 後執行“traceroute”,查看第一跳並將其與“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. ...

引用自:https://serverfault.com/questions/401462