【问题标题】:Find an IP's origin (Internet or Intranet) in JAVA?在 JAVA 中查找 IP 的来源(Internet 或 Intranet)?
【发布时间】:2014-02-06 11:22:03
【问题描述】:

通常我可以通过编程方式 ping 一个 IP。但它不会返回 IP 在 Internet 或 Intranet。我想查找 ping 的 IP 是在 Internet 还是 Intranet。有什么方法可以找到它。

【问题讨论】:

  • 您可以为您的 Intranet 地址指定一个范围,所有不属于该范围的将是 Internet IP 地址。
  • 如果有许多不同的网络具有不同的子网掩码,我真的很感兴趣代码会是什么。

标签: java ip intranet


【解决方案1】:

你不能简单地在 Java 中 ping,因为它依赖于 ICMP,遗憾的是 Java 不支持它

http://mindprod.com/jgloss/ping.html

改用套接字

希望对你有帮助

感谢aretai java code to ping an IP address

但我发现类似https://gist.github.com/madan712/4509039

【讨论】:

    【解决方案2】:

    可以判断的是 IP 地址是否是“private range”地址,这是一个在公共 Internet 上无效的地址范围,专门用于 Intranet采用。例如 192.168.* 或 10.* 范围内的任何地址。

    您可以使用InetAddress.isSiteLocal() 方法执行此操作。当然,如果您的公司不为其 Intranet 使用私有范围 IP 地址,这将无法正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 2016-12-08
      • 2011-01-16
      相关资源
      最近更新 更多