java测试(ping)ip和端口,带超时时间!!!

带超时时间,到了时间,没通就返回false.

/**
     * Purpose:ping ip
     * @author Hermanwang
     * @param ipAddress:ip
     * @throws Exception
     * @return boolean
     */
    public static boolean pingIp(String ipAddress) throws Exception {
        //此处 3是超时时间,单位是秒
        return 0==Runtime.getRuntime().exec("ping -w 3 "+ipAddress).waitFor();
    }

/**
     * Purpose:ping host或者 port
     * @author Hermanwang
     * @param ipAddress:ip
     * @param port:port/host
     * @throws Exception
     * @return boolean
     */
    public static boolean pingHost(String ipAddress,int port) throws Exception {
        boolean isReachable = false;
        Socket connect = new Socket();
        try {
            InetSocketAddress endpointSocketAddr = new InetSocketAddress(ipAddress, port);
            //此处3000是超时时间,单位 毫秒
            connect.connect(endpointSocketAddr,3000);
            isReachable = connect.isConnected();
        } catch (Exception e) {
            System.out.println(e.getMessage() + ", ip = " + ipAddress + ", port = " +port);
        } finally {
            if (connect != null) {
                try {
                    connect.close();
                } catch (IOException e) {
                    System.out.println(e.getMessage() + ", ip = " + ipAddress + ", port = " +port);
                }
            }
        }
        return isReachable;
    }

 

亲测有效!!!

你可能感兴趣的:(java测试(ping)ip和端口,带超时时间!!!)