如果我在大学,我被要求激活一段代码。所以我需要找到与我的大学 iP 相匹配的 iP。想知道如何在java中做到这一点?我已经尝试过环回接口。
damien
问问题
721 次
3 回答
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;
}
我还没有运行此代码,但它应该可以满足您的需要。
于 2009-08-07T20:34:17.143 回答
0
不应该有某种用于自动代理发现和配置的协议吗?你的大学有这个设置吗?如果您的代码发现了正确的设置并且可以选择覆盖这些设置,那就更好了。
于 2009-08-07T20:44:23.270 回答
0
有各种各样的网站可以为您提供公共 IP(或网关的公共 IP,我认为这就是您想要的)。您可以告诉程序与其中一个站点建立 HTTP 连接,并获取包含信息的页面。由于这些站点具有非常可预测的格式,因此使用一两个正则表达式很容易解析结果。这仅在您有互联网连接时才有效。
或者,您可以让程序尝试连接到您大学的一个 Intranet 服务器。如果它可以连接到外部世界无法访问的站点,则它位于 LAN 上。
于 2009-08-07T20:45:41.303 回答