网站首页 > 开源技术 正文
ping命令也许是IT人士使用的最频繁的命令之一,判断一个人是否真正懂电脑的最简单方法是看他会不会使用ping命令,在这篇文章中,我将尝试以简洁的方式向大家介绍ping命令的一些使用技巧,也许其中有你不曾掌握的:)
注:不同的操作系统中都有ping工具,虽然使用的都是ICMP协议,但其支持的功能及参数都不尽相同,在Windows中ping命令的功能相对Linux等*nix平台中的ping命令功能会简单一些。
使用-a参数获取指定IP的域名
通常,我们通过ping指定的域名来获得这个域名绑定的IP地址,在Windows下,反过来我们还可以使用-a参数来获得指定IP的域名,在下面的例子中我们获得8.8.8.8的PTR记录为dns.google:
C:\Windows\system32>ping -a 8.8.8.8
Pinging dns.google [8.8.8.8] with 32 bytes of data:
Reply from 8.8.8.8: bytes=32 time=28ms TTL=52
Reply from 8.8.8.8: bytes=32 time=30ms TTL=52
Reply from 8.8.8.8: bytes=32 time=28ms TTL=52
Reply from 8.8.8.8: bytes=32 time=28ms TTL=52
Ping statistics for 8.8.8.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 28ms, Maximum = 30ms, Average = 28ms
C:\Windows\system32>
使用-S/-I参数指定源IP
如果我们的系统有多个IP地址,可以使用-S(Windows)参数或-I(Linux)参数指定Ping数据包的源IP:
C:\Windows\system32>ping -S 192.168.30.11 192.168.30.254
Pinging 192.168.30.254 from 192.168.30.11 with 32 bytes of data:
Reply from 192.168.30.254: bytes=32 time<1ms TTL=64
Reply from 192.168.30.254: bytes=32 time<1ms TTL=64
Reply from 192.168.30.254: bytes=32 time<1ms TTL=64
Reply from 192.168.30.254: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.30.254:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\Windows\system32>
如果是Linux系统则使用-I参数,-I可以指定接口名或者IP地址:
root@kali:~# ping -I 192.168.30.21 192.168.30.254
PING 192.168.30.254 (192.168.30.254) from 192.168.30.21 : 56(84) bytes of data.
64 bytes from 192.168.30.254: icmp_seq=1 ttl=64 time=1.29 ms
64 bytes from 192.168.30.254: icmp_seq=2 ttl=64 time=0.344 ms
64 bytes from 192.168.30.254: icmp_seq=3 ttl=64 time=0.367 ms
^C
--- 192.168.30.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2024ms
rtt min/avg/max/mdev = 0.344/0.667/1.292/0.441 ms
root@kali:~#
root@kali:~# ping -I eth1 192.168.30.254
PING 192.168.30.254 (192.168.30.254) from 192.168.30.21 eth1: 56(84) bytes of data.
64 bytes from 192.168.30.254: icmp_seq=1 ttl=64 time=0.522 ms
64 bytes from 192.168.30.254: icmp_seq=2 ttl=64 time=0.531 ms
64 bytes from 192.168.30.254: icmp_seq=3 ttl=64 time=0.235 ms
^C
--- 192.168.30.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2035ms
rtt min/avg/max/mdev = 0.235/0.429/0.531/0.137 ms
root@kali:~#
使用-i参数指定发包速度
在Windows中,ping的时间间隔为1秒钟且不能更改,而在Linux中可使用-i参数指定,普通用户权限只能指定大于0.2秒的间隔,如:
msf@kali:~nbsp;ping -i 0.1 192.168.30.254
PING 192.168.30.254 (192.168.30.254) 56(84) bytes of data.
ping: cannot flood; minimal interval allowed for user is 200ms
msf@kali:~nbsp;ping -i 0.2 192.168.30.254
PING 192.168.30.254 (192.168.30.254) 56(84) bytes of data.
64 bytes from 192.168.30.254: icmp_seq=1 ttl=64 time=0.403 ms
64 bytes from 192.168.30.254: icmp_seq=2 ttl=64 time=0.507 ms
64 bytes from 192.168.30.254: icmp_seq=3 ttl=64 time=0.471 ms
^C
--- 192.168.30.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 407ms
rtt min/avg/max/mdev = 0.403/0.460/0.507/0.043 ms
msf@kali:~nbsp;
而在苹果macOS系统中,普通用户只能指定大雨0.1秒的时间间隔:
woo@iMac metasploit-framework-5.0.83 % ping -i 0.1 192.168.3.254
PING 192.168.3.254 (192.168.3.254): 56 data bytes
64 bytes from 192.168.3.254: icmp_seq=0 ttl=64 time=1.975 ms
64 bytes from 192.168.3.254: icmp_seq=1 ttl=64 time=1.111 ms
除-i参数外,我们还可以使用-f参数让ping程序卖力地ping,但需要root权限:
root@kali:~# ping 192.168.30.254 -f
PING 192.168.30.254 (192.168.30.254) 56(84) bytes of data.
^C
--- 192.168.30.254 ping statistics ---
2603 packets transmitted, 2603 received, 0% packet loss, time 1848ms
rtt min/avg/max/mdev = 0.137/0.616/45.546/1.106 ms, pipe 2, ipg/ewma 0.710/6.457 ms
root@kali:~#
使用-n/-c参数指定ping的次数
在Windows中,我们可以使用-n参数指定需要ping的次数,默认值ping 4个包,如要持续ping则使用-t参数:
C:\Windows\system32>ping 192.168.30.254 -n 1
Pinging 192.168.30.254 with 32 bytes of data:
Reply from 192.168.30.254: bytes=32 time=1ms TTL=64
Ping statistics for 192.168.30.254:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
C:\Windows\system32>
Linux中相应的参数为-c:
msf@kali:~nbsp;ping -c 1 192.168.30.254
PING 192.168.30.254 (192.168.30.254) 56(84) bytes of data.
64 bytes from 192.168.30.254: icmp_seq=1 ttl=64 time=0.662 ms
--- 192.168.30.254 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.662/0.662/0.662/0.000 ms
msf@kali:~nbsp;
使用ping工具来测试网络丢包率
一般来说,ping工具的用途主要用来测试目标IP是否可达,以及到目标网络的丢包率。要获取相对准确的丢包率我们需要用到-W参数(指定能接受的最大延时)、-i以及-c参数:
root@kali:~# ping -c 100 -i 0.1 -q -W 2 124.225.118.86
PING 124.225.118.86 (124.225.118.86) 56(84) bytes of data.
--- 124.225.118.86 ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 10050ms
rtt min/avg/max/mdev = 3.842/4.545/14.154/1.384 ms
root@kali:~#
在这个例子中,min、max跟avg值相差越小,mdev(rtt偏差值)越小说明网络质量越好。
使用-l/-s参数指定ping包的payload
Windows的ping包payload长度可以通过-l参数指定,默认为32字节,其内容为a-w连续拼接。在Linux中,则使用-s参数指定ping包的数据长度,默认为48字节,其内容可以通过-p参数指定,默认为固定的内容。感兴趣的同学可以自己抓包研究,这里不做过多的赘述。
根据响应的TTL判断目标的操作系统
Ping命令的响应TTL为初始TTL减去中途经过的路由跳数,Windows操作系统的初始TTL值为128,Linux为64,某些网络设备及Unix系统则为256。所以通过TTL我们可以大概
判断目标IP的操作系统,根据经验,Windows、Linux系统准确度可达99%以上。
以上就是我认为比较有用的一些功能,当然ping命令的用途还不止这些,各位读者如有其它好用的请留言讨论。
ping是笔者掌握的第一个操作系统名,当年笔者正是通过这个ping命令迈进了IT的知识殿堂,所以把它作为我在头条平台分享的第一篇文章的主体,希望各位读者能有所收获。同时也希望各位继续关注我,本人将会继续给大家分享IT方面(尤其是网络安全攻防方向)的知识!
猜你喜欢
- 2024-10-17 HCIP-Kali——简单kali学习(kali基础教程)
- 2024-10-17 换了新单位,居住证积分怎么办?(居住证积分换单位能不能网签)
- 2024-10-17 关于kali linux系统的简单工具——第一单元
- 2024-10-17 网络安全工作中,信息收集与扫描具体有哪些高效可复用的方法?
- 2024-10-17 linux系统日常管理--Linux网络相关
- 2024-10-17 浅谈基于ARP协议的网络攻击(浅谈基于arp协议的网络攻击技术)
- 2024-10-17 煤气炉烧红火的困扰终于找到源头啦
- 2024-10-17 利用Zabbix监控工具自动帮我们检测目标网络状况
- 2024-10-17 西门子Profinet故障诊断入门(西门子profinet模块)
- 2024-10-17 黑客攻防简要流程(黑客攻防教程)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)