java中的ip地址

时间:2009-08-07 19:42:02

标签: java networking ip loopback

如果我在大学里,我被要求激活某段代码。所以我需要找到我要与我的学院iP匹配的iP。难怪如何在java中这样做?我已经尝试过循环接口。

3 个答案:

答案 0 :(得分:3)

在每个界面上使用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;
}

我没有运行此代码,但它应该做你需要的。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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