java实现fPing
fPing
- 概述
- 安装
- 常用命令
- java简单实现
- java根据业务实现
概述
官网地址:http://fping.org/
ping是常用的网络测试工具。
fPing在ping的基础上增加更多的功能。
fPing是一个程序,用于将ICMP回波探测发送到网络主机,类似于ping,但是在ping多个主机时性能更好。
安装
下载地址:https://download.csdn.net/download/yj735972447/14951312
- 下载后,先解压
- 解压后接上面两个文件拷贝到 C:\Windows\System32
- 拷贝之后就可以使用fping命令
常用命令
- -t 设置两次ping之间的时间间隔,默认超时为500ms
- -c n ping每个目标的次数
- -C n 同-c, 返回的结果为冗长格式
- -g ping某个pi段之间是否可达
- -u 显示不可ping通的目标
- -a 显示可ping通的目标
- -A 将目标以ip地址的形式显示
- -f 从文件获取目标列表
- -t n 单个目标的超时时间(毫秒)(默认500)
- -r n 当ping失败时,最大重试次数(默认为3次)
- -p n 对同一个目标的ping包间隔(毫秒)
- -l 循环发送ping
- -i n ping包之间的间隔(单位:毫秒)(默认25)
- -p n 对同一个目标的ping包间隔(毫秒)
java简单实现
long sTime = System.currentTimeMillis();List<String> ipList = Arrays.asList("192.168.2.110","192.168.2.111","192.168.1.128","192.168.2.112","192.168.1.100","192.168.1.89");// 缓存不可达的ip数据StringBuilder ipStates = new StringBuilder();try{String cmdPing = " fPing -u " + String.join(" ",ipList);Process process = Runtime.getRuntime().exec(cmdPing);// 使用try with resource机制释放资源try(InputStream in = process.getInputStream();InputStreamReader reader = new InputStreamReader(in, Charset.forName("utf-8"));BufferedReader br = new BufferedReader(reader)) {String line;while ((line = br.readLine()) != null) {ipStates.append(",").append(line);System.out.println(line);}}}catch (Exception e){e.printStackTrace();}System.out.println("=====================fPing用时===================="+(System.currentTimeMillis()-sTime));System.out.println(ipStates.toString());
java根据业务实现
//每次循环获取ip状态的数量int loopIps = 2;long sTime = System.currentTimeMillis();List<String> ipList= Arrays.asList("192.168.2.110","","192.168.2.111","192.168.1.128","192.168.2.112","192.168.1.100","192.168.1.89");List<String> collectIps = ipList.stream().filter((x) -> !"".equals(x)).collect(Collectors.toList());// 缓存不可达的ip数据StringBuilder ipStates = new StringBuilder();// 向上取整获取需要循环的次数int loopNum = (int) Math.ceil((double) collectIps.size()/loopIps);//用于缓存下一次获取IP的索引起始值int nextLoopIps=0;for (int i = 0; i < loopNum; i++) {try{//每次获取的ip状态的list集合List<String> subList;if (i == 0){ //如果是第一次循环,起始值从0开始subList = collectIps.subList(nextLoopIps, nextLoopIps = nextLoopIps+loopIps);}else if (i == (loopNum - 1)){ //判断是否是最后一次循环,如果是最后一次循环,循环ip的数量直接获取到末尾subList = collectIps.subList(nextLoopIps, loopNum);}else{subList = collectIps.subList(nextLoopIps, nextLoopIps = nextLoopIps+loopIps);}String cmdPing = " fPing -u " + String.join(" ",subList);Process process = Runtime.getRuntime().exec(cmdPing);// 使用try with resource机制释放资源try(InputStream in = process.getInputStream();InputStreamReader reader = new InputStreamReader(in, Charset.forName("utf-8"));BufferedReader br = new BufferedReader(reader)) {String line;while ((line = br.readLine()) != null) {ipStates.append(",").append(line);System.out.println(line);}}}catch (Exception e){e.printStackTrace();}}System.out.println("=====================fPing用时===================="+(System.currentTimeMillis()-sTime));System.out.println(ipStates.toString());
java实现fPing相关推荐
- zabbix搭建及网络设备、服务器设备监控并设定邮箱、钉钉警报(更新中)
首先需要初步了解的是zabbix的系统简介,zabbix是一个开源监控系统:可监控服务器.网络设备等一切运行状况,可设置触发阈值通过微信.钉钉.邮箱.手机等通讯工具反馈给运维人员,非常好的一个监控开源 ...
- java学习笔记(十一)常用类、反射、垃圾回收
常用类: System类代表当前java程序的运行平台,Runtime类代表当前java程序的运行时环境. String代表一个不可变的字符串,StringBuffer和Stringbulider代表 ...
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几
Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...
- 在k8s中使用gradle构建java web项目镜像Dockerfile
在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...
- Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常
kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...
- OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3
OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...
- Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid
Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...
最新文章
- python将string转换为json_python -- 将string转换成dict的方法
- python将二维列表内容写入和读取.txt文件
- ASP.NET通过递归添加树(Treeview)
- 《Dojo构建Ajax应用程序》随书源码
- cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)
- Linux vi/vim
- python手机销售系统详细设计_数据库详细设计文档 .doc
- 【数据竞赛】kaggle竞赛宝典-多分类相关指标优化​
- Elasticsearch如何关掉服务
- linux 离线安装nfs,ubuntu 上离线安装包制作与安装之NFS搭建
- c# npoi 2.5版本设置字体加粗_Python帮你做Excel——格式设置与画图
- mie散射理论方程_Mie氏散射理论的实验研究
- DesignPatterns-装饰器模式
- 设计模式大类--结构模式(下)
- js基础-23-websocket和ajax的区别
- C99标准的新特性介绍
- 【搬运】不思议的小故事,其实舰娘们也是有灵性的
- 手机如何安装java软件_如何在手机上安装JAVA平台
- CPU工作方式、多核心、超线程技术详解[转贴]
- html记忆游戏,html5 最强大脑最强记忆游戏