文档章节

java实现windows系统ping命令

大号没有了
 大号没有了
发布于 2015/12/30 11:01
字数 262
阅读 3
收藏 0
点赞 0
评论 0
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Pinger {
 /**
  * 要ping的主机
  */
 private String remoteIpAddress;
 /**
  * 设置ping的次数
  */
 private final int pingTimes;
 /**
  * 设置超时
  */
 private int timeOut;
 /**
  * 构造函数
  * 
  * @param remoteIpAddress
  * @param pingTimes
  * @param timeOut
  */
 public Pinger(String remoteIpAddress, int pingTimes, int timeOut) {
  super();
  this.remoteIpAddress = remoteIpAddress;
  this.pingTimes = pingTimes;
  this.timeOut = timeOut;
 }
 /**
  * 测试是否能ping通
  * 
  * @param server
  * @param timeout
  * @return
  */
 public boolean isReachable() {
  BufferedReader in = null;
  Runtime r = Runtime.getRuntime();
  // 将要执行的ping命令,此命令是windows格式的命令
  String pingCommand = "ping " + remoteIpAddress + " -n " + pingTimes + " -w " + timeOut;
  try {
   Process p = r.exec(pingCommand);
   if (p == null) {
    return false;
   }
   in = new BufferedReader(new InputStreamReader(p.getInputStream()));
   // 逐行检查输出,计算类似出现=23ms TTL=62字样的次数
   int connectedCount = 0;
   String line = null;
   while ((line = in.readLine()) != null) {
    connectedCount += getCheckResult(line);
   }
   // 如果出现类似=23ms TTL=62这样的字样,出现的次数=测试次数则返回真
   return connectedCount == pingTimes;
  } catch (Exception ex) {
   ex.printStackTrace();
   return false;
  } finally {
   try {
    in.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
 /**
  * 若line含有=18ms TTL=16字样,说明已经ping通,返回1,否則返回0.
  * 
  * @param line
  * @return
  */
 private static int getCheckResult(String line) {
  Pattern pattern = Pattern.compile("(\\d+ms)(\\s+)(TTL=\\d+)", Pattern.CASE_INSENSITIVE);
  Matcher matcher = pattern.matcher(line);
  while (matcher.find()) {
   return 1;
  }
  return 0;
 }

© 著作权归作者所有

共有 人打赏支持
大号没有了
粉丝 2
博文 60
码字总数 6228
作品 0
合肥
Maven的安装文字版(Windows/Linux/Mac)

以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/mavenenvironment_setup.html,安装信息更新到最新版本: Maven是基于Java的工具,所以首要必须的要求是你的电...

easonjim ⋅ 2017/05/07 ⋅ 0

windows下部署Tomcat8

系统环境:Windows Server 2012 R2 1 安装JDK环境,推荐exe方式安装; 2 安装apache-tomcat-8.5.31-windows-x64,直接解压即可; 3 设置相关环境变量;   添加系统变量:JAVAHOME的值...

zengwj1949 ⋅ 05/23 ⋅ 0

Windows安装配置JDK1.8

1.官网下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.安装 双击jdk-8u171-windows-x64.exe,选择目标安装目录,笔者选择D:Java目录。 ......

把青春抚养大 ⋅ 05/12 ⋅ 0

Jenkins 教程(一)实现自动化打包及邮件通知

个人不喜欢装腔作势一堆专业术语放上去,让大多数人看不懂来提升逼格(所谓的专家),所以我简单的介绍jenkins是干啥的。本文使用jenkins,就是让它把git仓库里的东西取出来,然后在jenkins容器...

FantJ ⋅ 05/26 ⋅ 0

Windows下配置JDK的环境变量

Windows下配置JDK的环境变量 一、环境准备 Windows10 jdk-9.0.1 二、下载并安装JDK 到Java的官网下载JDK安装包,地址:http://www.oracle.com/technetwork/java/javase/downloads/index.htm...

优惠券发放 ⋅ 04/29 ⋅ 0

Java - jdk中的jps命令,快速查找java进程

  前言      很多大数据组件都是java写的,而且启动之后进程名称一大串,不好查看、判断是哪个程序的进程,这时候就可以用到了jps命令。      jps是什么   jps类似linux的ps命令...

linux运维菜 ⋅ 05/29 ⋅ 0

使用Docker运行Java应用程序

使用Docker运行Java应用程序 部署软件混乱; 需要克服许多问题才能生成顺畅且无痛的部署过程。诸如环境设置,依赖性地狱,编排管理以及系统可用性等问题是部署新应用程序时遇到的许多问题中的...

优惠券发放 ⋅ 05/30 ⋅ 0

Windows server 2008和centos 7安装jdk

Windows server 2008和centos 7安装jdk JDK JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Jav...

luchao669 ⋅ 05/31 ⋅ 0

云计算高级培训,Tomcat运维JVM 虚拟机常识

云计算高级培训,Tomcat运维JVM 虚拟机常识,作为了解JVM 虚拟机的开始。我们很有必要弄明白以下问题。 所谓虚拟机,就是一台虚拟的计算机。他是一款软件,用来执行一系列虚拟计算机指令。大...

长沙千锋 ⋅ 05/17 ⋅ 0

Linux后台运行java -jar

问题描述 我打好的jar包,放在服务器上之后,在windows里面用xshell打开一个连接,然后运行java -jar 。。。。执行这个jar文件,当我关闭这个链接的时候为什么程序停止了呢? 打开XShell连接...

汪纬 ⋅ 04/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 12分钟前 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 15分钟前 ⋅ 0

Webpack 4 api 了解与使用

webpack 最近升级到了 v4.5+版 01 官方不再支持 node4 以下版本 官方不再支持 node4 以下版本官方不再支持 node4 以下的版本,所以如果你的node版本太低,先开始升级node吧!话说node10 ...

NDweb ⋅ 25分钟前 ⋅ 0

使用nodeJs安装Vue-cli

Vue脚手架就是一个Vue框架开发环境 脚手架的意思是帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装,让我们不需要为了编辑或者一些其...

木筏笔歆 ⋅ 57分钟前 ⋅ 0

【微信小程序开发实战】0x00.开发前准备工作

写在开始 本人资深后端码农一枚,近期项目需求,接触到了微信小程序,将学习过程整理成文分享给小伙伴们,由于是边学边整理难免有表述不对的地方,望大家及时指正,感谢。 本人微信号: dream...

dreamans ⋅ 今天 ⋅ 0

linux redis的安装和php7下安装redis扩展

安装redis服务器 (1)下载安装包: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz (2)编译程序: $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make $ cd src &&......

concat ⋅ 今天 ⋅ 0

Guava EventBus源码解析

一、EventBus使用场景示例 Guava EventBus是事件发布/订阅框架,采用观察者模式,通过解耦发布者和订阅者简化事件(消息)的传递。这有点像简化版的MQ,除去了Broker,由EventBus托管了订阅&...

SaintTinyBoy ⋅ 今天 ⋅ 0

http怎么做自动跳转https

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME......

Helios51 ⋅ 今天 ⋅ 0

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 今天 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部