使用java检查没有URL测试连接的Internet连接

时间:2014-06-29 03:14:54

标签: java connection jna

如何检查计算机是否已连接到Internet。我不想使用URL检查方法。是否可以使用java调用操作系统的函数?例如,在JNA库中,是否有任何函数可以执行此操作?

2 个答案:

答案 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