【问题标题】:ip address in javajava中的ip地址
【发布时间】:2010-11-17 19:30:11
【问题描述】:

如果我在上大学,我被要求激活一段代码。所以我需要找到与我的大学 iP 相匹配的 iP。想知道如何在java中做到这一点?我已经尝试了回环接口。

【问题讨论】:

  • 您能否详细说明您正在尝试做什么?激活和匹配是什么意思?
  • 对,如果我在我的大学里,我应该自动激活代理以允许我在我的大学之外搜索链接。所以我需要检索我的 iP 并将其与我的大学 iP 范围进行比较,然后继续。问题是我的回报 iP 即将到来 127.0.1.1

标签: java networking ip loopback


【解决方案1】:

通过在每个接口上使用NetworkInterface.getNetworkInterfaces() 并调用getInetAddresses(),您可以查看分配给您计算机的所有IP 地址。要检查您的大学范围内是否有 IP,您可以执行以下操作:

boolean onCampusNetwork() {
    for(Enumeration<NetworkInterface> ifaces = NetworkInterface.getNetworkInterfaces(); ifaces.hasMoreElements();) {
        NetworkInterface iface = ifaces.nextElement();
        for(Enumeration<InetAddress> addresses = iface.getInetAddresses(); addresses.hasMoreElements;) {
            InetAddress address = addresses.nextElement();
            // return true if address is in the university's range; something like:
            if(address.toString().startsWith("10.0")) {
                return true;
            }
        }
    }
    // None of the IP addresses were in the university's range.
    return false;
}

我没有运行这段代码,但它应该能满足你的需要。

【讨论】:

    【解决方案2】:

    不应该有某种protocol for automatic proxy discovery and configuration吗?你的大学有这个设置吗?那么,如果您的代码发现了正确的设置并且可以选择覆盖这些设置,那就更好了。

    【讨论】:

      【解决方案3】:

      有各种各样的网站可以为您提供公共 IP(或网关的公共 IP,我认为这就是您想要的)。您可以告诉程序与其中一个站点建立 HTTP 连接并获取包含信息的页面。由于这些站点具有非常可预测的格式,因此使用一两个正则表达式很容易解析结果。不过,这仅在您有互联网连接时才有效。

      或者,您可以让程序尝试连接到您大学的一台 Intranet 服务器。如果它可以连接到外部世界无法访问的站点,则它位于 LAN 上。

      【讨论】:

        猜你喜欢
        • 2014-01-08
        • 2012-08-19
        • 2012-08-10
        • 2012-02-05
        • 1970-01-01
        • 1970-01-01
        • 2011-12-26
        • 1970-01-01
        • 2011-03-23
        相关资源
        最近更新 更多