如何检查计算机是否已连接到Internet。我不想使用URL检查方法。是否可以使用java调用操作系统的函数?例如,在JNA库中,是否有任何函数可以执行此操作?
答案 0 :(得分:2)
您可以使用ping
命令:
class PingHost
{
public static void main(String[] args)
{
String ip = "www.google.com";
String pingResult = "";
String pingCmd = "ping " + ip;
try
{
Runtime r = Runtime.getRuntime();
Process p = r.exec(pingCmd);
BufferedReader in = new BufferedReader(new
InputStreamReader(p.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
{
System.out.println(inputLine);
pingResult += inputLine;
}
in.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
您应该收到如下回复:
64 bytes from 173.194.37.147: icmp_seq=0 ttl=52 time=299.032 ms
64 bytes from 173.194.37.147: icmp_seq=1 ttl=52 time=508.100 ms
答案 1 :(得分:0)
您可以通过dns检查公共主机名(例如google)是否resolvable到IP地址。
解决该地址后,您可以查看它是否为reachable。