【问题标题】:Generate all possible MAC address within range生成范围内所有可能的 MAC 地址
【发布时间】:2015-11-20 02:04:47
【问题描述】:

这是一个愚蠢的要求。然而,我希望它可以节省我的时间,如果有人已经在任何开源网站上编写和发布过,我可以重复使用。

我有一个 MAC 地址范围。比如说

18:67:b0:7c:00:00 - 18:67:b0:7c:ff:ff

我需要在上述范围内生成所有可能的 MAC 地址。谁能给我一个可以做到这一点的免费脚本?

【问题讨论】:

  • 这样的脚本很容易写。你试过这样做吗?
  • 这是一个快速的工作。如果它可以在 github 或开源网站上免费获得,由某人编写,它可能会节省我的时间。如果没有,我必须写它。
  • 编写这样的脚本实际上需要 3 分钟。比你花在写问题和评论上的时间少

标签: php python bash


【解决方案1】:

使用 bash:

echo "18:67:b0:7c:"{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}:{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}

或:

printf "%s\n" "18:67:b0:7c:"{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}:{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}

【讨论】:

    【解决方案2】:

    这是一个 Python 3.x 版本,以防有人好奇:

    import itertools
    
    for x, y in itertools.product(range(256), range(256)):
        print(f"18:67:b0:7c:{x:02x}:{y:02x}")
    

    或者对于 Python 2.x:

    import itertools
    
    for x, y in itertools.product(xrange(256), xrange(256)):
        print "18:67:b0:7c:{:02x}:{:02x}".format(x,y)
    

    【讨论】:

      【解决方案3】:

      这可以通过这个非常简单的代码来实现。只需使用嵌套循环和sprintf()

      <?php
      
      $mac = "AA:BB:CC:DD:";
      for ($i = 0; $i < 256; $i++) 
      {
          for ($j = 0; $j < 256; $j++)
          {
              echo $mac . sprintf("%02X:%02X", $i, $j);
              echo '<br/>';
          }
      }
      
      ?>
      

      输出:

      AA:BB:CC:DD:00:00
      AA:BB:CC:DD:00:01
      AA:BB:CC:DD:00:02
      AA:BB:CC:DD:00:03
      ...
      AA:BB:CC:DD:7D:4A
      AA:BB:CC:DD:7D:4B
      AA:BB:CC:DD:7D:4C
      ...
      AA:BB:CC:DD:FF:FD
      AA:BB:CC:DD:FF:FE
      AA:BB:CC:DD:FF:FF
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-27
        • 2019-04-24
        • 2019-08-26
        • 2021-03-11
        • 1970-01-01
        • 2013-01-04
        • 2014-12-10
        相关资源
        最近更新 更多