Javaはネットワークが接続されているかどうかを判断する

1856 ワード

import java.io.BufferedReader;    
import java.io.IOException;    
import java.io.InputStream;    
import java.io.InputStreamReader;    
     
/**  
 *         .  
 * @author luox  
 * @date 2019 3 25 
 */   
public class PingIpUtil {    
    
    /**
     *         
     * @param ip
     * @return true/false
     */
    public static boolean isConnect(String ip){
        boolean connect = false;    
        Runtime runtime = Runtime.getRuntime();    
        Process process;    
        try {    
            process = runtime.exec("ping " + ip);    
            InputStream is = process.getInputStream();     
            InputStreamReader isr = new InputStreamReader(is);     
            BufferedReader br = new BufferedReader(isr);     
            String line = null;     
            StringBuffer sb = new StringBuffer();     
            while ((line = br.readLine()) != null) {     
                sb.append(line);     
            }        
            is.close();     
            isr.close();     
            br.close();     
     
            if (null != sb && !sb.toString().equals("")) {     
                String logString = "";     
                if (sb.toString().indexOf("TTL") > 0) {     
                    //           
                    connect = true;    
                } else {     
                    //            
                    connect = false;    
                }     
            }     
        } catch (IOException e) {    
            e.printStackTrace();    
        }     
        return connect;    
    }    
         
    public static void main(String[] args) {    
        PingIpUtil netState = new PingIpUtil();    
        System.out.println("ping  :"+netState.isConnect("IP"));    
     
    }    
}