探究-ping指令的使用
简介:
背景:一直以来在项目上经常使用ping指令来测试网络通信,最近稍微研究了一下常用的指令,记录以作备忘。--MaQaQ 2023-11-1
ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。
上面这一串是百度百科的解释,用人话翻译一下就是,ping一般是用来测网络通信的。
以下在windows操作系统下分析,win+r打开运行窗口输入cmd,打开控制台后输入ping,如下所示:

指令:
1、最常用的ping指令:ping {IP}
该指令默认向目标地址发送4次回显请求,发送缓冲区默认32字节。
完整示例如下:
ping 192.168.1.3
运行如下:

2、连续ping:ping -t {IP}
也可以写成 ping {ip} -t,该指令会连续ping目标主机,直到人手动中止,CTRL+Break查看当前统计信息(Break键即Pause Break,键盘上的PB,笔记本或紧凑型键盘可能没有),CTRL+C中止。
完整示例如下:
ping -t 192.168.1.3
运行如下:

3、解析目标主机名:ping -a {IP}
指定对目的地 IP 地址进行反向名称解析。如果解析成功,ping 将显示相应的主机名。
完整示例如下:
ping -a 192.168.101.45
运行如下:

4、指定发送次数:ping -n {count} {IP}
指定发送回响请求消息的次数。默认值为 4。
完整示例如下:
ping -n 8 192.168.101.45
运行如下:

5、设置发送缓冲区大小,ping -l {size} {IP}
该指令用于设置发送字节数,size范围在[0,65500],为避免造成DOS攻击,一般不建议配合-t使用(←_←)
完整示例如下:
ping -l 65500 192.168.101.45
运行如下:

6、记录计数跃点的路由(仅适用于 IPv4):ping -r {count}
该指令用于记录由回响请求消息和相应的回响应答消息使用的路径,count 范围在[1,9],如果不知道具体路由数,那么可以直接写9。
完整示例如下:
ping -r 9 192.168.1.3
运行如下:

7、计数跃点的时间戳(仅适用于 IPv4):ping -s {count} {IP}
该指令用于记录每个跃点的回响请求消息和相应的回响应答消息的到达时间,count 范围在[1,4]。
完整示例如下:
ping -s 4 192.168.1.3
运行如下:

8、等待每次回复的超时时间(毫秒):ping -w {timeout} {IP}
默认超时时间是4000ms,意思是直接使用ping指令,我们要等4s才知道请求超时,如果不想要等4s,则可以使用-w来修改超时时间
完整示例如下(这里的500即0.5s):
ping -w 500 192.168.1.3
运行如下:

9、指定源地址:ping -S {srcIP} {targetIP}

10、批量执行ping指令:for /L %D in {范围} do ping {网段}%D
其中:
范围格式为(起始地址,递增数,结束地址),如(1,1,255)就是从1-255每次递增1(即该网段下所有IP全部遍历)
网段格式为x.x.x.,x填入对应的IP地址前三个字节
ping指令中可以搭配上面的其他功能码,如ping -n 1指定ping次数
完整示例如下:
for /L %D in (1,1,255) do ping -n 1 192.168.101.%D
即遍历192.168.101网段下1-255,对每个IP都执行1次ping指令

11、其他
- -f
指定发送的回响请求消息带有“不要拆分”标志(所在的 IP 标题设为 1)。回响请求消息不能由目的地路径上的路由器进行拆分。该参数可用于检测并解决“路径最大传输单位 (PMTU)”的故障。
- -i TTL
指定发送回响请求消息的 IP 标题中的 TTL 字段值。其默认值是是主机的默认 TTL 值。对于 Windows XP 主机,该值一般是 128。TTL 的最大值是 255。
- -v TOS
指定发送回响请求消息的 IP 标题中的“服务类型 (TOS)”字段值。默认值是 0。TOS 被指定为 0 到 255 的十进制数。
- -jPath
指定回响请求消息使用带有 HostList 指定的中间目的地集的 IP 标题中的“稀疏资源路由”选项。可以由一个或多个具有松散源路由的路由器分隔连续中间的目的地。主机列表中的地址或名称的最大数为 9,主机列表是一系列由空格分开的 IP 地址(带点的十进制符号)。
- -k HostList
指定回响请求消息使用带有 HostList 指定的中间目的地集的 IP 标题中的“严格来源路由”选项。使用严格来源路由,下一个中间目的地必须是直接可达的(必须是路由器接口上的邻居)。主机列表中的地址或名称的最大数为 9,主机列表是一系列由空格分开的 IP 地址(带点的十进制符号)。
结果:
1、通信正常
正常显示来自目标IP的回复,包括bytes(字节)、time(时间)、TTL,其中:
bytes 值:数据包大小,也就是字节。
time 值:响应时间,这个时间越小,说明你连接这个地址速度越快。
TTL 值:Time To Live, 表示 DNS 记录在 DNS 服务器上存在的时间,它是 IP 协议包的一个值,告诉路由器该数据包何时需要被丢弃。
如下所示:

2、常见异常
- Request timed out,请求超时,表示在指定时间内未收到目标主机的响应
- Destination host Unreachable,目标主机不可达,表示发送数据无法到达目标主机
可能原因:a.对方与自己不在同一网段内,而自己又未设置默认的路由;
b.网络故障
- Unknown host,未知主机,表示无法解析目标主机的主机名或IP地址
可能原因:a.输入错误的主机名或IP地址、DNS问题或网络连接问题
- TTL expired in transit,传输中的TTL已过期,表示在数据包传输过程中,经过的路由器的TTL(生存时间)已经减为0,导致数据包被丢弃。
可能原因:a.网络路由问题、网络拥堵或配置错误
- Destination net unreachable,目标网络不可达,表示无法到达目标网络
可能原因:a.网络配置错误、路由表问题或网络故障
- No route to host,无法到达主机,表示无法找到到达目标主机的路由路径
可能原因:网络配置错误、路由表问题或网络故障
- Packet loss,数据包丢失,表示在ping命令发送的数据包中有丢失的数据包
可能原因:网络拥堵、网络故障或目标主机负载过高
3、异常处理
ping 127.0.0.1
127.0.0.1是本地循环地址,如果该地ping不通,则表明本机TCP/IP协议不能正常工作,反之正常
ping 本机的IP地址
ping本机IP地址,如果ping通了表明网卡或modem工作正常,反之就是网卡出现故障了
ping 同网段计算机的IP地址
如果目标IP与主机不是同网段,那么我们可以先ping一个跟主机同网段的IP,不能通就说明网络线路出现故障.如果网段中还包含有路由,则应先ping路由器在本网段端口的IP,不通则线路有问题,如果通了再ping路由在目标计算机所在网段的端口IP,不通则路由有故障.如果通了,最后再ping目的机IP
ping -a 目标IP地址
如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。
ping 网址
连接外网情况下,可以通过ping网址来判断DNS服务器是否有问题,例如:ping baidu.com,如果不通,那就是DNS服务器的问题了。
个人经验
a.多拿一台电脑试试;b.从目标机ping回主机试试;c.关掉防火墙试试;d.直接拿网线试试
总结:
最最常用的就两条:
ping 192.168.1.1
ping -t 192.168.1.1
探究-ping指令的使用的更多相关文章
- TCP/IP 详解7 Ping指令
首先介绍一下ping 指令的基本过程:(这部分摘自网络) 我们以下面一个网络为例:有A.B.C.D四台机子,一台路由RA,子网掩码均为255.255.255.0,默认路由为192.168.0.1 1. ...
- docker镜像没有ifconfig、ping指令
Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令 解决: apt-get update apt install net-tools # ifconfig apt ...
- windows 环境和linux环境下 ping命令的区别:
Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可 ...
- ubuntu ping响应慢的解决方法
ubuntu ping网站时每次ping指令都需要很久才能有响应,不过网络延迟却正常. 后来发现是因为/etc/nsswitch.conf文件中hosts的配置有问题,做如下修改后正常: 将原 ...
- Linux(CentOS)常用操作指令(一)
基本指令集合 1.查看CentOS版本信息 cat /proc/version cat /etc/redhat-release 2.查看安全日志文件信息 tail -f /var/log/secure ...
- 《TCP/IP 详解 卷一》读书笔记-----Ping&Traceroute
1.ping是用于测试对方主机是否可达的命令,其实本质上就是echo类型的ICMP报文.同时,ping还能用于计算RTT(round-trip time),即两台主机间的往返时延. 2.随着网络安全意 ...
- Windows 2008 R2防火墙,允许被ping
netsh firewall set icmpsetting 8 1. 准备 1) 原因 出于安全因素考虑,在Windows 2008 R2上是不允许从外部对其Ping ...
- Android 用ping的方法判断当前网络是否可用
判断网络的情况中,有个比较麻烦的情况就是连上了某个网络,但是那个网络无法上网 ,,, = = 想到了用ping指令来判断,经测试,可行~ ~ ~ private static final boolea ...
- Windows 2008 R2防火墙,允许被ping的设置方法
这篇文章主要介绍了Windows 2008 R2防火墙,允许被ping的设置方法,需要的朋友可以参考下 1.准备 1)原因 出于安全因素考虑,在Windows 2008 R2上是不允许从外部对其P ...
- Linux基础命令---ping
ping ping指令可以发送ICMP请求到目标地址,如果网络功能正常,目标主机会给出回应信息.ping使用ICMP协议强制发送ECHO_REQUEST报文到目标主机,从主机或网关获取ICMP ECH ...
随机推荐
- 【NestJS系列】DI依赖注入与IOC控制反转
前言 上篇文章我们学习了如何使用nest-cli来快速生成一个NestJS后端项目,当我们打开编辑器查看代码时,会发现整个代码风格有点类似JAVA的spring框架,并且你会发现一些service类在 ...
- 简单了解下最近正火的SwissTable
去年看到字节跳动给golang提了issue建议把map的底层实现改成SwissTable的时候,我就有想写这篇博客了,不过因为种种原因一直拖着. 直到最近遇golang官方开始讨论为了是否要接受Sw ...
- Nginx配置Https缺少SSL模块(已解决)
1.Linux下Nginx配置https nginx下载和安装此处就忽略,可自行百度 1.1.配置https 打开nginx配置文件 vim /usr/local/nginx/conf/nginx.c ...
- 用 Hugging Face 推理端点部署 LLM
开源的 LLM,如 Falcon.(Open-)LLaMA.X-Gen.StarCoder 或 RedPajama,近几个月来取得了长足的进展,能够在某些用例中与闭源模型如 ChatGPT 或 GPT ...
- 《HelloGitHub》第 88 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...
- Unity UGUI的Outline(描边)组件的介绍及使用
Unity UGUI的Outline(描边)组件的介绍及使用 1. 什么是Outline(描边)组件? Outline(描边)组件是Unity UGUI中的一种特效组件,用于给UI元素添加描边效果.通 ...
- EchoMode的显示效果
1 import sys 2 from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QFormLayout 3 4 class l ...
- 图加速数据湖分析-GeaFlow和Apache Hudi集成
表模型现状与问题 关系模型自1970年由埃德加·科德提出来以后被广泛应用于数据库和数仓等数据处理系统的数据建模.关系模型以表作为基本的数据结构来定义数据模型,表为二维数据结构,本身缺乏关系的表达能力, ...
- JS逆向实战21——某查查webpack密码加密
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 网站 aHR0cHM6Ly ...
- 9.1 C++ STL 排序、算数与集合
C++ STL(Standard Template Library)是C++标准库中的一个重要组成部分,提供了丰富的模板函数和容器,用于处理各种数据结构和算法.在STL中,排序.算数和集合算法是常用的 ...