fPing

  • 概述
  • 安装
  • 常用命令
  • java简单实现
  • java根据业务实现

概述

官网地址:http://fping.org/
ping是常用的网络测试工具。
fPing在ping的基础上增加更多的功能。
fPing是一个程序,用于将ICMP回波探测发送到网络主机,类似于ping,但是在ping多个主机时性能更好。

安装

下载地址:https://download.csdn.net/download/yj735972447/14951312

  1. 下载后,先解压
  2. 解压后接上面两个文件拷贝到 C:\Windows\System32
  3. 拷贝之后就可以使用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相关推荐

  1. zabbix搭建及网络设备、服务器设备监控并设定邮箱、钉钉警报(更新中)

    首先需要初步了解的是zabbix的系统简介,zabbix是一个开源监控系统:可监控服务器.网络设备等一切运行状况,可设置触发阈值通过微信.钉钉.邮箱.手机等通讯工具反馈给运维人员,非常好的一个监控开源 ...

  2. java学习笔记(十一)常用类、反射、垃圾回收

    常用类: System类代表当前java程序的运行平台,Runtime类代表当前java程序的运行时环境. String代表一个不可变的字符串,StringBuffer和Stringbulider代表 ...

  3. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  4. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  5. 在k8s中使用gradle构建java web项目镜像Dockerfile

    在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...

  6. Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常

    kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...

  7. SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos

    SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...

  8. OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3

    OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...

  9. Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid

    Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...

最新文章

  1. python将string转换为json_python -- 将string转换成dict的方法
  2. python将二维列表内容写入和读取.txt文件
  3. ASP.NET通过递归添加树(Treeview)
  4. 《Dojo构建Ajax应用程序》随书源码
  5. cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)
  6. Linux vi/vim
  7. python手机销售系统详细设计_数据库详细设计文档 .doc
  8. 【数据竞赛】kaggle竞赛宝典-多分类相关指标优化​
  9. Elasticsearch如何关掉服务
  10. linux 离线安装nfs,ubuntu 上离线安装包制作与安装之NFS搭建
  11. c# npoi 2.5版本设置字体加粗_Python帮你做Excel——格式设置与画图
  12. mie散射理论方程_Mie氏散射理论的实验研究
  13. DesignPatterns-装饰器模式
  14. 设计模式大类--结构模式(下)
  15. js基础-23-websocket和ajax的区别
  16. C99标准的新特性介绍
  17. 【搬运】不思议的小故事,其实舰娘们也是有灵性的
  18. 手机如何安装java软件_如何在手机上安装JAVA平台
  19. CPU工作方式、多核心、超线程技术详解[转贴]
  20. html记忆游戏,html5 最强大脑最强记忆游戏

热门文章

  1. isNaN()的用法
  2. 小米CyberOne,用于营销的人型机器人
  3. 《Splunk智能运维实战》——2.3 找出最常访问的网页
  4. mac无法充电解决方法
  5. 彻底讲透xposed原理
  6. Xposed原理与应用Api
  7. 把时间戳转换成倒计时
  8. 创建模式、结构模式、行为模式的区别
  9. 程序员租女友遭骗 发200红包后却被拉黑
  10. [附源码]Python计算机毕业设计Django创意摄影交流平台