linux ping命令参数说明及使用

2023-11-11

一.参数说明

在控制台输入ping会有参数说明:

BusyBox v1.22.1 (2019-07-23 15:07:27 CST) multi-call binary.

Usage: ping [OPTIONS] HOST

Send ICMP ECHO_REQUEST packets to network hosts

        -4,-6           Force IP or IPv6 name resolution
        -c CNT          Send only CNT pings
        -s SIZE         Send SIZE data bytes in packets (default:56)
        -t TTL          Set TTL
        -I IFACE/IP     Use interface or IP address as source
        -W SEC          Seconds to wait for the first response (default:10)
                        (after all -c CNT packets are sent)
        -w SEC          Seconds until ping exits (default:infinite)
                        (can exit earlier with -c CNT)
        -q              Quiet, only displays output at start
                        and when finished

-c CNT为发送ping包的数量。
-s SIZE为一个ping包的字节数。
-W SEC为第个ping包的响应超时时间,单位S,其余ping包的响应超时时间为1s。
-w SEC执行PING操作的超时时间,单位S。

二.举例

1.ping 5次,第一个包的响应超时时间为10s,ping不通测试。

命令:ping -c 5 -W 10 14.215.155.2
响应:

PING 14.215.155.2 (14.215.155.2): 56 data bytes

--- 14.215.155.2 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss

耗时15s。

2.ping 5次,第一个包的响应超时时间为10s,ping通测试。

命令:ping -c 5 -W 10 14.215.177.38
响应:

PING 14.215.177.38 (14.215.177.38): 56 data bytes
64 bytes from 14.215.177.38: seq=0 ttl=52 time=1185.530 ms
64 bytes from 14.215.177.38: seq=1 ttl=52 time=473.809 ms
64 bytes from 14.215.177.38: seq=2 ttl=52 time=1453.260 ms
64 bytes from 14.215.177.38: seq=3 ttl=52 time=667.310 ms
64 bytes from 14.215.177.38: seq=4 ttl=52 time=652.426 ms

--- 14.215.177.38 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 473.809/886.467/1453.260 ms

耗时5s。

3.ping 5次,ping操作完成超时时间为10s,ping不通测试。

命令:ping -c 5 -w 10 14.215.155.2
响应:

PING 14.215.155.2 (14.215.155.2): 56 data bytes

--- 14.215.155.2 ping statistics ---
10 packets transmitted, 0 packets received, 100% packet loss

耗时10s。

4.ping 5次,ping操作完成超时时间为10s,ping通测试。

命令:ping -c 5 -w 10 14.215.177.38
响应:

PING 14.215.177.38 (14.215.177.38): 56 data bytes
64 bytes from 14.215.177.38: seq=0 ttl=52 time=1905.632 ms
64 bytes from 14.215.177.38: seq=1 ttl=52 time=1006.655 ms
64 bytes from 14.215.177.38: seq=2 ttl=52 time=1506.314 ms
64 bytes from 14.215.177.38: seq=3 ttl=52 time=524.375 ms
64 bytes from 14.215.177.38: seq=4 ttl=52 time=873.773 ms

--- 14.215.177.38 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 524.375/1163.349/1905.632 ms

耗时5s。

三.c代码调用shell命令测试是否ping通指定地址

/**
* @brief  检测是否能ping通指定的IP地址。
* @param  
* strIP:需要ping的主机地址。
* pingCnt:执行ping的次数。
* pingFirstResponseTimeOut:第一个包的响应超时时间。
* Result:传入的存放结果的地址,*Result=1表示ping通,*Result=0表示没有ping通。
* @retval false:执行失败,true:执行成功。
*/
bool ShellPing( char *strIP, uint8_t pingCnt, uint8_t pingFirstResponseTimeOut, uint8_t *Result )
{
	char cmd[100];

	*Result = 0;
	
	sprintf( cmd, "ping -c %d -W %d %s", pingCnt, pingFirstResponseTimeOut, strIP );
	
	FILE *fp = popen( cmd, "r" );

	if( !fp )
	{
		return false;
	}

	char buff[1024];
	
	size_t len = fread( buff, 1, sizeof(buff), fp );

	buff[len] = '\0';

	printf("ping:%s\r\n", buff );

	if( len > 0 )
	{
		if( (strstr(buff, "packets transmitted") != NULL) && (strstr(buff, "100% packet loss") == NULL) )
		{
			*Result = 1;
		}
	}
	
	pclose( fp );

	return true;
}

不能ping通测试:

/**
  * @brief  None
  * @param  None
  * @retval None
  */
int main(int argc, char** argv)
{
	if( ShellPing( "14.215.155.2", 5, 10, &pingResult ) == true )
	{
		printf("ping Result:%d\r\n", pingResult);
	}
	else
	{
		printf("ping error!\r\n");
	}

	exit(0);
}

运行结果:

ping:PING 14.215.155.2 (14.215.155.2): 56 data bytes

--- 14.215.155.2 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss

ping Result:0

能ping通测试:

/**
  * @brief  None
  * @param  None
  * @retval None
  */
int main(int argc, char** argv)
{
	if( ShellPing( "14.215.177.38", 5, 10, &pingResult ) == true )
	{
		printf("ping Result:%d\r\n", pingResult);
	}
	else
	{
		printf("ping error!\r\n");
	}

	exit(0);
}

运行结果:

ping:PING 14.215.177.38 (14.215.177.38): 56 data bytes
64 bytes from 14.215.177.38: seq=0 ttl=52 time=1178.263 ms
64 bytes from 14.215.177.38: seq=1 ttl=52 time=417.850 ms
64 bytes from 14.215.177.38: seq=2 ttl=52 time=815.923 ms
64 bytes from 14.215.177.38: seq=3 ttl=52 time=1345.252 ms
64 bytes from 14.215.177.38: seq=4 ttl=52 time=944.915 ms

--- 14.215.177.38 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 417.850/940.440/1345.252 ms

ping Result:1
52 time=944.915 ms

--- 14.215.177.38 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 417.850/940.440/1345.252 ms

ping Result:1

火柴棍科技工作室:www.huochaigun.top

技术交流群

STM32MP1:861926625

ESP8266:476685983

无线(NB-IOT, Cat.1, 4G)通信模组:666129332

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux ping命令参数说明及使用 的相关文章

  • 如何从 Bash 命令行在后台 Vim 打开另一个文件?

    我正在从使用 Gvim 过渡到使用控制台 Vim 我在 Vim 中打开一个文件 然后暂停 Vim 在命令行上运行一些命令 然后想返回到 Vim Ctrl Z 在正常模式下 暂停 Vim 并返回到控制台 fg可用于将焦点返回到 Vim job
  • Docker忽略limits.conf(试图解决“打开文件太多”错误)

    我正在运行一个 Web 服务器 该服务器正在处理数千个并发 Web 套接字连接 为了实现这一点 在 Debian linux 我的基本镜像是 google debian wheezy 在 GCE 上运行 上 打开文件的默认数量设置为 100
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • 退出代码大于 255 — 可能吗?

    如果是 在哪个操作系统 shell 或其他操作系统上 考虑以下 Java 程序 我使用 Java 只是作为示例 任何语言都适合这个问题 这更多地与操作系统有关 public class ExitCode public static void
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • 在压缩存档内的文本文件上运行“head”,而不解压存档

    问候 我接手了之前的团队并编写了处理 csv 文件的 ETL 作业 我在 ubuntu 上结合使用 shell 脚本和 perl csv 文件很大 它们以压缩档案形式到达 解压后 很多都超过 30Gb 是的 那是 G 旧进程是在 cron
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include

随机推荐

  • 1小时学会CSS-下

    今天给大家分享的内容包含CSS 盒子模型 CSS 标准布局 CSS 浮动布局 并以案列进行详细说明 一 CSS 盒子模型 CSS 将所有元素都当成盒子 CSS布局其实就是如何堆放盒子 组成 content 内容 gt padding 内边距
  • 【c语言】小程序游戏——飞机游戏(二)

    在接下来 我们需要对飞机添加一些属性 1 利用键盘控制飞机的移动 2 按空格键可以发射激光 NO 1 利用键盘控制飞机的移动 首先我们需要了解的是 如果想要通过按键来控制飞机的移动 那么我们具体要怎么控制呢
  • Verilog(4)系统任务monitor,time,stop,random等,编译预处理语句

    调试用系统任务和常用编译预处理语句 用于调试和差错的系统任务 以及编写模块时的预处理语句 系统任务 monitor 提供了监控和输出参数列表中表达式或变量值的功能 参数列表中输出控制格式字符串和输出表列的规则和 d i s p l a
  • java基础之replace,replaceAll

    走在乡间的小路上 回首过往 以下代码结果都是显示在Console框中 所以 n会被解析成换行 n只显示 n 所以看到结果换行其实是输出了 n 看到输出 n 其实输出的是 n replace和replaceAll是编程中经常用到的替换函数 成
  • 求出1~N范围中所有的素数

    判断是否为素数 public static boolean isPrime int n int sqrt int Math sqrt n int i for i 2 i lt sqrt i if n i 0 break if i gt sq
  • 小程序瀑布流布局

    list wxml列表
  • Java的深浅拷贝机制

    Java的深浅拷贝机制 我们先理解一下深浅拷贝的概念 1 浅拷贝 Java在进行对象拷贝的过程中 对于他的成员变量进行拷贝 如果是基本数据类型 就会直接拷贝他的值 如果是引用类型 则会拷贝他的引用地址 而不会拷贝对象本身 2 深拷贝 Jav
  • Windows 10 和 Windows 11 有什么区别?

    Windows 10 和 Windows 11 有什么区别 Windows 11 具有 Windows 10 的全部功能和安全性 同时具有经重新设计而焕然一新的外观 它还自带一些新的工具 声音和应用 所有细节面面俱到 颜值 功能与安全性集于
  • Python字符串转为字典方法大全

    方法一 通过内置函数eval 1 2 3 4 5 6 7 8 9 10 11 12 13 str info name test age 18 dict info eval str info print string info type is
  • 【MYSQL】第一篇 Mysql如何处理百万级别的数据

    1 应尽量避免在 where子句中使用 或 lt gt 操作符 否则将引擎放弃使用索引而进行全表扫描 2 应尽量避免在 where子句中对字段进行 null值判断 否则将导致引擎放弃使用索引而进行全表扫描 3 尽量避免在 where子句中使
  • Jmeter性能测试 —— TPS拐点寻找

    寻找TPS性能拐点1 准备脚本 在本地电脑调试Jmeter压测脚本 上传到压测机Jmeter所在的服务器 2 执行压力测试 执行压测脚本 jmeter n t xianchengzuse jmx 记录业务压测数据 3 监控服务器性能指标 监
  • MySQL____高级查询、联合查询

    文章目录 一 聚合查询 1 count查询 总数统计 1 1count 用法1 1 2 count 用法2 1 3count 用法3 1 4 注意事项 2 SUM函数 总和统计 3 AVG函数 4 MAX函数 5 MIN函数 二 ifnul
  • 如何统计iOS产品不同渠道的下载量?

    一 前言 在开发过程中 Android可能会打出来很多的包 用于标识不同的商店下载量 原来觉得苹果只有一个商店 AppStore 如何做出不同来源的统计呢 本篇文章就是告诉大家如何做不同渠道来源统计 二 正文 先看一下苹果自家统计到的数据
  • unity局域网开关机步骤一-网络唤醒-设置电脑使允许局域网内其他电脑控制

    被控制端主机的设置 一 Bois界面网络唤醒的设置 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img TR2xwyAx 1593577482582 htts img blog csdnimg cn 20200701
  • 详细及易读懂的 大津法(OTSU)原理 和 比opencv自带更快的算法实现

    OTSU算法原理简述 最大类间方差是由日本学者大津 Nobuyuki Otsu 于1979年提出 是一种自适应的阈值确定方法 算法假设图像像素能够根据阈值 被分成背景 background 和目标 objects 两部分 然后 计算该最佳阈
  • C++之拷贝构造、拷贝赋值

    拷贝构造 class Stu public int no string name int age public Stu int no 10086 string name jin int age 18 no no name name age
  • springboot+mybatis-plus+双数据源

    springboot mybaits plus mybatis plus的双数据源和逆向工程的配置整合 废话不多说直接开始干 mybatis plus逆向工程的配置 public class CodeGenerator Project pa
  • JVM、GC和常用命令

    这是11月份的一个分享 借着组内分享的机会 重新梳理了一遍JVM的一些基本概念和学习资料 在这个PPT中 关于G1的部分比较粗略 最近正在恶补G1的知识 后面可能会单独整理一篇分享出来 需要原件的 可以在我的公众号 duqi Voice 后
  • 【头歌】Linux Linux从入门到精通

    https www educoder net paths 43 第1关 Linux初体验 bin bash 在以下部分写出完成任务的命令 begin cd ls a end 第2关 Linux常用命令 bin bash 在以下部分写出完成任
  • linux ping命令参数说明及使用

    一 参数说明 在控制台输入ping会有参数说明 BusyBox v1 22 1 2019 07 23 15 07 27 CST multi call binary Usage ping OPTIONS HOST Send ICMP ECHO