這是一個愚蠢的請求。然而,我希望希望能夠節省我的時間,如果有人已經在任何開源網站上撰寫和發佈,我可以重複使用。生成範圍內的所有可能的MAC地址
我有一系列的MAC地址。舉例來說
18:67:b0:7c:00:00 - 18:67:b0:7c:ff:ff
我需要在上述範圍內生成所有可能的MAC地址。任何人都可以指向我一個可以做到這一點的免費腳本?
這是一個愚蠢的請求。然而,我希望希望能夠節省我的時間,如果有人已經在任何開源網站上撰寫和發佈,我可以重複使用。生成範圍內的所有可能的MAC地址
我有一系列的MAC地址。舉例來說
18:67:b0:7c:00:00 - 18:67:b0:7c:ff:ff
我需要在上述範圍內生成所有可能的MAC地址。任何人都可以指向我一個可以做到這一點的免費腳本?
使用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}
這可以用這個非常簡單的代碼來實現。只需使用嵌套循環和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
這裏是一個Python版本,以防萬一有人好奇:
import itertools
for x, y in itertools.product(xrange(256), xrange(256)):
print "18:67:b0:7c:{:02x}:{:02x}".format(x,y)
這是很容易寫這樣的劇本。你有沒有試過這樣做? – Alik
這是一個快速的工作。如果它在github或開源網站免費提供,由某人編寫,它可能會節省我的時間。如果沒有,我必須寫。 – BlueBird
它需要3分鐘才能寫出這樣的腳本。比您花時間編寫問題和評論花費更多的時間 – Alik