Java 如何通过internet获取系统IP地址
由于一个系统上可能连接了许多以太网或wlan,我如何知道哪个网络具有internet连接Java 如何通过internet获取系统IP地址,java,ip-address,Java,Ip Address,由于一个系统上可能连接了许多以太网或wlan,我如何知道哪个网络具有internet连接 Enumeration en; try { en = NetworkInterface.getNetworkInterfaces(); while (en.hasMoreElements()) { NetworkInterface ni = (NetworkInterface) e
Enumeration en;
try {
en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) en.nextElement();
Enumeration ee = ni.getInetAddresses();
System.out.println(ni.getName());
while (ee.hasMoreElements()) {
InetAddress ia = (InetAddress) ee.nextElement();
System.out.println(ia.getHostAddress());
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
请查看以下代码:
public static void main(String[] args) {
Enumeration en;
boolean connected;
int timeOut = 5000;
try {
en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) en.nextElement();
Enumeration ee = ni.getInetAddresses();
System.out.println(ni.getName());
while (ee.hasMoreElements()) {
InetAddress ia = (InetAddress) ee.nextElement();
ia.getByName("www.google.com");
connected = ia.isReachable(timeOut);
if (connected == true) {
System.out.println(ia.getHostAddress());
}
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
请查看以下代码:
public static void main(String[] args) {
Enumeration en;
boolean connected;
int timeOut = 5000;
try {
en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) en.nextElement();
Enumeration ee = ni.getInetAddresses();
System.out.println(ni.getName());
while (ee.hasMoreElements()) {
InetAddress ia = (InetAddress) ee.nextElement();
ia.getByName("www.google.com");
connected = ia.isReachable(timeOut);
if (connected == true) {
System.out.println(ia.getHostAddress());
}
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
getByName被错误地使用,并且没有做任何事情。IsRecable仅发送ICMP回显请求或ping,该请求或ping不会告诉是否存在internet连接。getByName被错误使用,并且不会执行任何操作。isReachable只发送ICMP回显请求或ping,这不会告诉是否存在internet连接。