2023年7月31日发(作者:)
详细讲解Windows下ping命令的使⽤对于Windows下ping命令相信⼤家已经再熟悉不过了,但是能把ping的功能发挥到最⼤的⼈却并不是很多,当然我也并不是说我可以让ping发挥最⼤的功能,我也只不过经常⽤ping这个⼯具,也总结了⼀些⼩经验,现在和⼤家分享⼀下。 现在我就参照ping命令的帮助说明来给⼤家说说我使⽤ping时会⽤到的技巧,ping只有在安装了TCP/IP协议以后才可以使⽤: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout]destination-list Options: -t Ping the specified host until see statistics and continue - type Control-Break;To stop - type Control-C. 不停的ping地⽅主机,直到你按下Control-C。此功能没有什么特别的技巧,不过可以配合其他参数使⽤,将在下⾯提到。 -a Resolve addresses to hostnames. 解析计算机NetBios名。 ⽰例:C:\>ping -a 192.168.1.21 Pinging [192.168.1.21] with 32 bytes of data: Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Ping statistics for 192.168.1.21: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms 从上⾯就可以知道IP为192.168.1.21的计算机NetBios名为。 -n count Number of echo requests to send. 发送count指定的Echo数据包数。 在默认情况下,⼀般都只发送四个数据包,通过这个命令可以⾃⼰定义发送的个数,对衡量⽹络速度很有帮助,⽐如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知: C:\>ping -n 50 202.103.96.68 Pinging 202.103.96.68 with 32 bytes of data: Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Request timed out. ……………… Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Ping statistics for 202.103.96.68: Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds: Minimum = 40ms, Maximum = 51ms, Average = 46ms 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 -l size Send buffer size. 定义echo数据包⼤⼩。 在默认的情况下windows的ping发送的数据包⼤⼩为32byt,我们也可以⾃⼰定义它的⼤⼩,但有⼀个⼤⼩的限制,就是最⼤只能发送65500byt,也许有⼈会问为什么要限制到65500byt,因为Windows系列的系统都有⼀个安全漏洞(也许还包括其他系统)就是当向对⽅⼀次发送的数据包⼤于或等于65532时,对⽅就很有可能挡机,所以微软公司为了解决这⼀安全漏洞于是限制了ping的数据包⼤⼩。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然⾮常强⼤,⽐如我们就可以通过配合-t参数来实现⼀个带有攻击性的命令:(以下介绍带有危险性,仅⽤于试验,请勿轻易施于别⼈机器上,否则后果⾃负) C:\>ping -l 65500 -t 192.168.1.21 Pinging 192.168.1.21 with 65500 bytes of data: Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ……………… 这样它就会不停的向192.168.1.21计算机发送⼤⼩为65500byt的数据包,如果你只有⼀台计算机也许没有什么效果,但如果有很多计算机那么就可以使对⽅完全瘫痪,我曾经就做过这样的试验,当我同时使⽤10台以上计算机ping⼀台Win2000Pro系统的计算机时,不到5分钟对⽅的⽹络就已经完全瘫痪,⽹络严重堵塞,HTTP和FTP服务完全停⽌,由此可见威⼒⾮同⼩可。 -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志。 在⼀般你所发送的数据包都会通过路由分段再发送给对⽅,加上此参数以后路由就不会再分段处理。 -i TTL Time To Live. 指定TTL值在对⽅的系统⾥停留的时间。 此参数同样是帮助你检查⽹络运转情况的。 -v TOS Type Of Service. 将“服务类型”字段设置为 tos 指定的值。 -r count Record route for count hops. 在“记录路由”字段中记录传出和返回数据包的路由。 在⼀般情况下你发送的数据包是通过⼀个个路由才到达对⽅的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的⽂章中给⼤家讲解。以下为⽰例: C:\>ping -n 1 -r 9 202.96.105.101 (发送⼀个数据包,最多记录9个路由) Pinging 202.96.105.101 with 32 bytes of data: Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 Route: 202.107.208.187 -> 202.107.210.214 -> 61.153.112.70 -> 61.153.112.89 -> 202.96.105.149 -> 202.96.105.97 -> 202.96.105.101 -> 202.96.105.150 -> 61.153.112.90 Ping statistics for 202.96.105.101: Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 10ms, Maximum = 10ms, Average = 10ms 从上⾯我就可以知道从我的计算机到202.96.105.101⼀共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 ,61.153.112.89 , 202.96.105.149 , 202.96.105.97这⼏个路由。 -s count Timestamp for count hops. 指定 count 指定的跃点数的时间戳。 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 -j host-list Loose source route along host-list. 利⽤ computer-list 指定的计算机列表路由数据包。连续计算机可以被中间⽹关分隔(路由稀疏源)IP 允许的最⼤数量为9。 -k host-list Strict source route along host-list. 利⽤ computer-list 指定的计算机列表路由数据包。连续计算机不能被中间⽹关分隔(路由严格源)IP 允许的最⼤数量为9。 -w timeout Timeout in milliseconds to wait for each reply. 指定超时间隔,单位为毫秒。 此参数没有什么其他技巧。 ping命令的其他技巧:在⼀般情况下还可以通过ping对⽅让对⽅返回给你的TTL值⼤⼩,粗略的判断⽬标主机的系统类型是Windows系列还是UNIX/Linux系列,⼀般情况下Windows系列的系统返回的TTL值在100-130之间,⽽UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对⽅的主机⾥是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "DefaultTTL"=dword:000000ff 255---FF 128---80 64----40 32----20
ping命令执⾏过程详解“ping”是我们经常会接触到的命令,但是⼤家对这个命令的了解有多少,这个命令的执⾏过程以及返回过来的信息代表什么意思呢?接下来我为⼤家逐⼀讲解。先看⼀下“Ping”的执⾏过程就以这样⼀个⽹络作为例⼦:假设有A、B、C、D四台机器,⼀台路由RA,⼦⽹掩码均为255.255.255.0,默认⽹关是192.168.0.1 1.同⼀⽹段 我们来看⼀下在A主机上执⾏“Ping 192.168.0.5”后,都发⽣了些什么。⾸先,Ping会通知系统建⽴⼀个固定格式的ICMP请求数据包,然后由ICMP协议打包这个数据包和地址“192.168.0.5”转交给IP层协议(⼀组后台运⾏的进程,与ICMP类似),IP层协议将以地址“192.168.0.5”作为⽬的地址,本机IP地址作为源地址,加上⼀些其他的控制信息,构建⼀个IP数据包,并想办法得到192.168.0.5的MAC地址(物理地址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),以便交给数据链路层构建⼀个数据帧。关键就在这⾥,IP层协议通过机器B的IP地址和⾃⼰的⼦⽹掩码,发现它跟⾃⼰属同⼀⽹络,就直接在本⽹络内查找这台机器的MAC,如果以前两机有过通信,在A机的ARP缓存表应该有B机IP与其MAC的映射关系,如果没有,就发⼀个ARP请求⼴播,得到B机的MAC,⼀并交给数据链路层。后者构建⼀个数据帧,⽬的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上⼀些控制信息,依据以太⽹的介质访问规则,将它们传送出去。 主机B收到这个数据帧后,先检查它的⽬的地址,并和本机的物理地址对⽐,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有⽤的信息提取后交给ICMP协议,后者处理后,马上构建⼀个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B⼀模⼀样。 2.不同⽹段 在主机A上执⾏“Ping 192.168.1.4”后,开始跟上⾯⼀样,到了怎样得到MAC地址时,IP协议通过计算发现D机与⾃⼰不在同⼀⽹段内,就直接将交由路由处理,也就是将路由的MAC取过来,⾄于怎样得到路由的MAC,跟上⾯⼀样,先在ARP缓存表找,找不到可以利⽤⼴播。路由得到这个数据帧后,再跟主机D进⾏联系,如果找不到,就向主机A返回⼀个超时的信息。 对Ping后返回信息的分析 t timed out 这是⼤家经常碰到的提⽰信息,很多⽂章中说这是对⽅机器置了过滤ICMP数据包,从以上我们介绍的⼯作流程来看,这种说法不完全正确,可能有以下⼏种情况: (1) 对⽅已关机,或者⽹络上根本没有这个地址:⽐如在上图中主机A中PING 192.168.0.7 ,或者主机B关机了,在主机A中PING 192.168.0.5 都会得到超时的信息。 (2)对⽅与⾃⼰不在同⼀⽹段内,通过路由也⽆法找到对⽅,但有时对⽅确实是存在的,当然不存在也是返回超时的信息。 (3)对⽅存在,不过设置了ICMP数据包过滤(⽐如防⽕墙设置)。 检查对⽅存在与否,可以⽤带参数 -a 的Ping命令探测,如果得到的返回信息能显⽰对⽅的NETBIOS名称,则说明对⽅是存在的,但是有防⽕墙设置,如果不显⽰,则很有可能是对⽅不在同⼀个⽹段内,或者关机。 (4)错误设置IP地址 正常情况下,⼀台主机应该有⼀个⽹卡,⼀个IP地址,或多个⽹卡,多个IP地址(这些地址⼀定要处于不同的IP⼦⽹)。但如果⼀台电脑的“拨号⽹络适配器”(相当于⼀块软⽹卡)的TCP/IP设置中,设置了⼀个与⽹卡IP地址处于同⼀⼦⽹的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接⼝处于同⼀⽹段内。当从这台主机Ping其他的机器时,会存在这样的问题: A.主机不知道将数据包发到哪个⽹络接⼝,因为有两个⽹络接⼝都连接在同⼀⽹段。 B.主机不知道⽤哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会⽆法处理,超时后,Ping就会给出⼀个“超时⽆应答”的错误信息提⽰。但从其他主机Ping这台主机时,请求包从特定的⽹卡来,ICMP只须简单地将⽬的、源地址互换,并更改⼀些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。 ation host Unreachable (1)⾃⼰未设定默认的路由,对⽅跟⾃⼰不在同⼀个⽹段内,⽐如上例中A机中不设定默认的路由,运⾏Ping192.168.0.1.4就会出现“Destination host Unreachable”。 (2)⽹线有问题 这⾥要补充说明⼀下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达⽬标的路由,⽽⽬标因为原因不可到达,这时候会出现“time out”,如果路由表中连到达⽬标的路由都没有,那就会出现“destinationhost unreachable”。 IP address 这个信息表⽰您可能没有连接到DNS服务器,所以⽆法解析这个IP地址,也可能是IP地址不存在。 quench received 这个信息出现的机率很少。它表⽰对⽅或中途的服务器繁忙⽆法回应。 n host——不知名主机 这个信息表⽰该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者⽹络管理员的系统与远程主机之间的通信线路有故障。 answer——⽆响应 这种故障说明本地系统有⼀条通向中⼼主机的路由,但却接收不到它发给该中⼼主机的任何信息。故障原因可能是下列之⼀:中⼼主机没有⼯作;本地或中⼼主机⽹络配置不正确;本地或中⼼的路由器没有⼯作;通信线路有故障;中⼼主机存在路由选择问题。 127.0.0.1:127.0.0.1是本地循环地址 如果本地址⽆法Ping通,则表明本地机TCP/IP协议不能正常⼯作。 rout to host:⽹卡⼯作不正常。 it failed,error code:10043⽹卡驱动不正常。 n host name:DNS配置不正确。好了,ping命令也基本上完全讲解完了,其中还有-j,-k参数我还没有详细说明,由于某些原因也包括我⾃⼰所收集的资料过少这⾥也没有向⼤家详细介绍,请⼤家见谅,如果在看了这篇⽂章的朋友当中有知道得⽐我更多的,以及其他使⽤技巧的也希望您能告诉我,并在此先谢过!
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690780033a424168.html
评论列表(0条)