测试IP是否连通的方法1

来源:互联网 发布:retrofit2上传json 编辑:程序博客网 时间:2024/04/30 11:34
测试stringsqlserverurloracle数据库
[java] view plaincopy
  1. /** 
  2.      * 测试IP是否连通 Author zyx Date 2012-04-18 
  3.      *  
  4.      * @param host 
  5.      * @return 
  6.      */  
  7.     private boolean testHost(Map<String, String> props) {  
  8.         boolean status = false;  
  9.         // 设置验证IP连通延迟时间  
  10.         int timeout = 3000;  
  11.         String url = props.get("url");  
  12.         String dbtype = (String) Globals.SYS_DB_TYPE.get(props.get("name"));  
  13.         String host = "";  
  14.         // 从url中截取IP连接地址 这里的截取方法 仅支持oracle sqlserver mysql DB2 不支持sybase  
  15.         // 如果是oracle数据库  
  16.         if ("1".equals(dbtype)) {  
  17.             if(url != null && !"".equals(url) && url.indexOf("@") > 0)  
  18.             host = url.substring(url.indexOf("@") + 1, url.indexOf(":", url.indexOf("@")));  
  19.         } else { // 其他数据库  
  20.             if(url != null && !"".equals(url) && url.indexOf("//") > 0)  
  21.             host = url.substring(url.indexOf("//") + 2, url.indexOf(":", url.indexOf("//")));  
  22.         }  
  23.   
  24.         try {  
  25.             if (InetAddress.getByName(host).isReachable(timeout)) {  
  26.                 logger.info("IP: " + host + " 正常连接");  
  27.                 status = true;  
  28.             } else {  
  29.                 logger.info("IP: " + host + " 无法连接");  
  30.                 status = false;  
  31.             }  
  32.         } catch (UnknownHostException e) {  
  33.             logger.info(host + "是非法的地址");  
  34.             e.printStackTrace();  
  35.         } catch (IOException e) {  
  36.             e.printStackTrace();  
  37.         } 
0 0