2015-08-26 96 views
-1

這是一個愚蠢的請求。然而,我希望希望能夠節省我的時間,如果有人已經在任何開源網站上撰寫和發佈,我可以重複使用。生成範圍內的所有可能的MAC地址

我有一系列的MAC地址。舉例來說

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

我需要在上述範圍內生成所有可能的MAC地址。任何人都可以指向我一個可以做到這一點的免費腳本?

+0

這是很容易寫這樣的劇本。你有沒有試過這樣做? – Alik

+0

這是一個快速的工作。如果它在github或開源網站免費提供,由某人編寫,它可能會節省我的時間。如果沒有,我必須寫。 – BlueBird

+1

它需要3分鐘才能寫出這樣的腳本。比您花時間編寫問題和評論花費更多的時間 – Alik

回答

4

使用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

這可以用這個非常簡單的代碼來實現。只需使用嵌套循環和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 
3

這裏是一個Python版本,以防萬一有人好奇:

import itertools 

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