zoukankan      html  css  js  c++  java
  • Ping命令的另一种使用方法

    今天实习结束休息的时候无聊,于是便想看看机房有多少机器,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

  • 相关阅读:
    [Baltic2013]ballmachine BZOJ3133
    [Jxoi2012]奇怪的道路 BZOJ3195 状压DP
    [Baltic 2011]Lamp BZOJ2346
    可并堆
    [Jsoi2016]最佳团体 BZOJ4753 01分数规划+树形背包/dfs序
    点分治
    J2EE WEB应用架构分析
    {经典}springmvc+mybatis+restful+webservice Jeesz分布式架构
    深入Spring Boot:那些注入不了的 Spring 占位符 ( ${} 表达式 )
    G1 垃圾收集器之对象分配过程
  • 原文地址:https://www.cnblogs.com/ives/p/5463714.html
Copyright © 2011-2022 走看看