【问题标题】:How to identify the requested IP address distance in Java? [closed]Java中如何识别请求的IP地址距离? [关闭]
【发布时间】:2016-08-02 14:27:35
【问题描述】:

我想用 Java 求 IP 地址的距离。例如,我的服务器在印度运行,服务器有两个请求,一个来自美国,另一个来自新加坡。现在我想确定请求IP的最短距离。有没有办法可以有效地实现这一目标?

【问题讨论】:

  • "现在我想确定请求 IP 的最短距离。" 你请求的是哪个 IP,IPv4 还是 IPv6,为什么你认为距离会不同两种不同的互联网协议之间?最有可能的是,IPv4 和 IPv6 的请求将是相同的距离。
  • 可以是 IPv4 或 IPv6。我正在寻找确定请求终端的距离,以便我可以将请求转发到分布式环境中最近的服务器

标签: java networking ip


【解决方案1】:

距离不是识别网络连接相关问题的好方法。

相反,您应该考虑到达目的地之前的总跳数(或经过的路由器列表)。

为此我们有traceroute 命令:

traceroute 是一个计算机网络诊断工具,用于显示 路由(路径)和测量数据包的传输延迟 互联网协议 (IP) 网络。记录路线的历史 作为从每个连续接收到的数据包的往返时间 路由(路径)中的主机(远程节点);平均时间的总和 每一跳是建立总时间的量度 联系。 Traceroute 继续进行,除非所有(三个)发送的数据包都 丢失两次以上,则连接丢失,路由无法 进行评估。

运行时,traceroute 会以简单的文本格式输出经过的路由器列表以及时间信息。

您可以通过java轻松执行此命令,并解析结果得到连接思路。

【讨论】:

  • 中转提供商经常欺骗traceroute,以防止他们的内部路由被发现。它实际上只在您自己的网络上可靠。此外,traceroute 的 RFC 已被移至历史状态,因为它没有在 Internet 上得到广泛支持; RFC 6814. 解释了这一点。
  • @RonMaupin - 我同意你的观点,但是,至少,这将是用于衡量的最佳标准,因为它也显示了时间信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 2018-04-02
  • 2011-07-31
  • 1970-01-01
  • 2014-11-07
相关资源
最近更新 更多