Ping命令的另一种使用方法

来源:互联网 发布:拳皇网络对战 编辑:程序博客网 时间:2024/05/01 15:05
 

今天实习结束休息的时候无聊,于是便想看看机房有多少机器,IP是什么,有没有什么小漏洞。

依次使用了netstat、ping、Telnet以后,不小心输入了这样一个东西

clip_image002

当时按下回车以后,心里想的是这样肯定是要报错,不会执行下去的。没有想到居然看到了结果。然后再看IP是【0.0.0.5】,就在疑惑为什么会是5,不应该是错误吗?

然后又尝试了几个不同的结果。结果如下:

clip_image004

到了这里我们就可以发现,直接输入数字并不是一种错误的输入方式,反而可以得到正确的结果。那么我们就应该分析一下具体的运算规律。

首先我们尝试几种特殊的值:

【1】

clip_image006

【255】

clip_image008

【256】

clip_image010

这里我们发现

1. 当输入的数值小于256时,就相当于输入的IP最后一段的数值,其他各位均为0.

2. 当输入的数值大于256时,就相当于输入的IP为输入数值除以256,如果有余数则余数为IP最后一段的数值。即:输入数据为256,得到的IP为:0.0.1.0。

随后我们依次尝试【256*256】【256*256*256】

【256*256】:65536

clip_image012

【256*256*256】:16777216

clip_image014

到这里我们发现一个256代表完整的一段IP地址。

那么如果想要尝试Ping :192.168.1.1

我们需要输入的数据便是1+256*1+168*256*256+192*256*256*256

即1+256+11010048+3221225472=3232235777

测试结果如下:

clip_image016

这里我们得到了正确的结果。

查了一下Ping的帮助,发现并没有相应的解释,我们可以大胆的猜测一下,Windows本身就是通过这种办法来实现的Ping。理由是什么呢,更高效?具体的原因就需要继续的研究了。

谢谢支持!

可以联系我进行交流。Renhanlinbsl@163.com

2015.5.4

16:28

0 0