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