JAVA中Ping IP地址的两种方法

 

今天进行IP巡检时用到了PINGIP地址,以获取该IP址是否可用,查了一些文档后,发现了两种PING的方法,但试用后,还是发现第一种比较好用,如果在局域网内,当然,第二种更有效率: 上面上代码

 

   
  // 方法一 最常用的 PING 方法
  Runtime runtime =Runtime.getRuntime(); // 获取当前程序的运行进对象
  Process process = null; //声明处理类对象
  String line = null; //返回行信息
  InputStream is = null; //输入流
  InputStreamReader isr = null;// 字节流
  BufferedReader br = null;
  String ip = "www.baidu.com";
  boolean res = false;// 结果
  try {
   process =runtime.exec("ping " + ip); // PING

   is =process.getInputStream(); // 实例化输入流
   isr = newInputStreamReader(is);// 把输入流转换成字节流
   br = newBufferedReader(isr);// 从字节中读取文本
   while ((line= br.readLine()) != null) {
    if(line.contains("TTL")) {
     res= true;
     break;
    }
   }
   is.close();
   isr.close();
   br.close();
   if (res){
    System.out.println("ping通  ...");

   } else{
    System.out.println("ping不通...");
   }
  } catch (IOException e) {
   System.out.println(e);
   runtime.exit(1);
  }
  //方法二 下面代码为 JDK1.5PING的新方法但不能用,因为 该PING请求端口为7 而大型网站会关闭不需要的端口防止入侵
  InetAddress address;
  try {
   address =InetAddress.getByName("www.weibo.com");
   System.out.println("Name:" + address.getHostName());
   System.out.println("Addr:" + address.getHostAddress());
   System.out.println("Reach:" + address.isReachable(3000)); //是否能通信 返回true或false
   System.out.println(address.toString());
  } catch (Exception e) {
   e.printStackTrace();
  }

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值