【发布时间】:2016-01-13 16:02:41
【问题描述】:
我想提前知道给定 IP 地址X 将使用什么网络接口。
我可以通过浏览java.net.NetworkInterface.getNetworkInterfaces() 的结果并检查X 与getInterfaceAddresses() 返回的每个InterfaceAddress 的IP 地址和子网掩码来做到这一点,但这似乎并不有趣,而且如果有多个选择有效,我最终可能会得到与 IP 堆栈选择的结果不同的结果。
我为什么需要它?
我需要知道可用于从具有 IP 地址X 的对等方联系我的 IP 地址。
【问题讨论】:
-
出于什么目的?注意您描述的技术不是确定的。 TCP 是通过静态路由表完成的,而不是你描述的那样。
-
@EJP 我编辑了我的帖子以添加关于我的目的的解释(我希望它不会太笨拙)。
-
@EJP 如果机器上没有定义静态路由,我猜我描述的技术是正确的,不是吗?
-
你还没有真正回答我的问题。 为什么您需要知道可用于从其他对等方联系您的 IP 地址?需要知道这一点的是同伴,而不是你。当他连接时,您可以从套接字中获取它。总是至少有一个静态路由,
-
@EJP 我需要知道它,因为另一个同行正在要求它。我同意他可以从套接字中检索它,但我无法控制此代码。
标签: java routing network-programming