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. 谈谈Android重打包--架构
  2. 如何在TFS中用命令行提交更新
  3. 从零开始--系统深入学习android(实践-让我们开始写代码-Android框架学习-2.service)...
  4. boost::mpl::aux::msvc_is_class相关用法的测试程序
  5. Android NFC读取电子标签
  6. NLP——序列标注之命名实体识别
  7. 《程序开发心理学——银年纪念版》前言
  8. 10.运输层(4)---TCP
  9. python 通过ftplib 实现上传下载
  10. 应广单片机 PMS150G、FPC161 基础例子【PWM设置】
  11. html中实现LED字体步骤记录
  12. 负反馈放大电路实验报告
  13. Nginx使用memcached外置缓存
  14. 拔丝芋头的Java学习日记--Day4
  15. Ubuntu 下图像标注工具 labelImg 的安装及使用
  16. Excel简单使用宏
  17. Mysql数据库(关系型与非关系型数据库)
  18. Markdown标记语法Typora编辑器零基础入门新手学习使用总结教程
  19. PTA_2019春_电话聊天狂人
  20. 应用统计学与R语言实现学习笔记(七)——拟合优度检验

热门文章

  1. Python面向对象实现案例——士兵突击
  2. 鲜有人知——3G技术竟源自一位艳丽女星
  3. 遥感水文前景_黑河流域中游地区生态水文过程及其分布式模拟
  4. 阿里云服务器香港云服务器和大陆云服务器不同之处和哪个更好
  5. HackTheBox | Timelapse
  6. idea的快捷键的设置方法
  7. expdp 很慢:Streams AQ: enqueue blocked on low memory
  8. java内存调度_Java高效并发
  9. 微企点 为创业者而生的免费响应式建站平台
  10. java定义切点_AOP如何自定义切点