Linux自動(dòng)生成MAC地址的多種方法

Linux下生成MAC地址的方法有很多種,除了常見(jiàn)的shell生成法外,還能通過(guò)Perl、ruby等方法來(lái)生成MAC地址,下面小編對(duì)MAC地址的自動(dòng)生成方法做了簡(jiǎn)單的匯總。
一、shell生成法
shell生成的方法是最多的的,同時(shí)也感覺(jué)也是最為簡(jiǎn)單高效的,這里列幾種常用工具隨機(jī)生成的方法:
openssl工具生成
代碼如下
yang@crunchbang:~$ openssl rand -hex 6 | sed ‘s/(。。)/1:/g; s/.$//’
a0:77:d4:ef:08:7d
yang@crunchbang:~$ openssl rand 6 | xxd -p | sed ‘s/(。。)/1:/g; s/:$//’
3b:7f:95:c8:39:6d
od生成
代碼如下
yang@crunchbang:~$ od -An -N10 -x /dev/random | md5sum | sed -r ‘s/^(。{10}).*$/1/; s/([0-9a-f]{2})/1:/g; s/:$//;’
b0:85:1a:41:b1
yang@crunchbang:~$
yang@crunchbang:~$ od /dev/urandom -w6 -tx1 -An|sed -e ‘s/ //’ -e ‘s/ /:/g’|head -n 1
d8:d3:67:20:c5:f2
for循環(huán)生成
代碼如下
yang@crunchbang:~$ for i in {1..6}; do printf “%0.2X:” $[ $RANDOM % 0x100 ]; done | sed ‘s/:$/n/’
8E:9E:FB:AE:FF:D2
yang@crunchbang:~$ h=0123456789ABCDEF;for c in {1..12};do echo -n ${h:$(($RANDOM%16)):1};if [[ $((c%2)) = 0 && $c != 12 ]];then echo -n :;fi;done;echo
19:7F:A9:41:E2:20
這里再次感嘆下,語(yǔ)言本身沒(méi)有高級(jí)貴賤,不要輕視了shell,shell能實(shí)現(xiàn)的干嗎非得要用perl、python、php等去實(shí)現(xiàn)。
二、perl生成法
代碼如下
yang@crunchbang:~$ perl -e ‘printf(“%.2x:”,rand(255))for(1..5);printf(“%.2xn”,rand(255))’
f8:42:c1:d4:a8:28
yang@crunchbang:~$ perl -e ‘print join(“:”, map { sprintf “%0.2X”,rand(256) }(1..6))。“n”’
A7:02:BD:BC:59:E2
perl的強(qiáng)大與簡(jiǎn)潔無(wú)可爭(zhēng)辯 。
三、ruby生成法
代碼如下
yang@crunchbang:~$ ruby -e ‘puts (1..6).map{“%0.2X”%rand(256)}.join(“:”)’
CD:97:ED:52:B7:F4
這里使用的方法幾乎和perl中的方法一樣。
四、python生成法
代碼如下
yang@crunchbang:~$ python -c “from itertools import imap; from random import randint; print ‘:’.join([‘%02x’%x for x in imap(lambda x:randint(0,255), range(6))])”
52:75:80:68:3a:cc
centos和redhat官方站點(diǎn)上也給出了一個(gè)python腳本:
代碼如下
#!/usr/bin/python
# macgen.py script to generate a MAC address for Red Hat Virtualization guests
#
import random
#
def randomMAC():
mac = [ 0x00, 0x16, 0x3e,
random.randint(0x00, 0x7f),
random.randint(0x00, 0xff),
random.randint(0x00, 0xff) ]
return ‘:’.join(map(lambda x: “%02x” % x, mac))
#
print randomMAC()
在有virtinst.util模塊時(shí),也可以使用下面的簡(jiǎn)單語(yǔ)句生成新的mac和uuid:
代碼如下
#!/usr/bin/env python
# -*- mode: python; -*-
print “”
print “New UUID:”
import virtinst.util ; print virtinst.util.uuidToString(virtinst.util.randomUUID())
print “New MAC:”
import virtinst.util ; print virtinst.util.randomMAC()
print “”
上面就是Linux生成MAC地址的方法介紹了,本文一共介紹了四種方法生成MAC地址,你可以選擇你喜歡的方法來(lái)自動(dòng)生成MAC地址。
相關(guān)文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來(lái)大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開(kāi)發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內(nèi)2025-04-16如何在Linux查看硬盤(pán)信息? 查看Linux硬盤(pán)大小類型和硬件信息的5種方法
使用Linux系統(tǒng)的過(guò)程中,查看和了解硬盤(pán)信息是非常重要的工作,尤其是對(duì)于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤(pán)信息?以下是具體內(nèi)容介紹2025-03-12如何在 Linux 中查看 CPU 詳細(xì)信息? 3招輕松查看CPU型號(hào)、核心數(shù)和溫度
在日常運(yùn)維工作中,獲取 CPU 信息是系統(tǒng)運(yùn)維管理員常見(jiàn)的工作內(nèi)容,無(wú)論是為了性能調(diào)優(yōu)、硬件升級(jí)還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨(dú)樹(shù)一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡(jiǎn)化,優(yōu)化,現(xiàn)代化,實(shí)用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來(lái)簡(jiǎn)要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機(jī)U盤(pán)?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個(gè)win11裝機(jī)u盤(pán),詳細(xì)如下2025-02-17Rsnapshot怎么用? 基于Rsync的強(qiáng)大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過(guò) SSH 備份遠(yuǎn)程文件,接下來(lái)詳細(xì)介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時(shí)、每天、每周和每月的本地備份,以及如何進(jìn)2025-02-06Linux Kernel 6.13發(fā)布:附更新內(nèi)容及新特性解讀
Linux 內(nèi)核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡(jiǎn)化內(nèi)核搶占邏輯,通過(guò)減少與調(diào)度器相關(guān)的調(diào)用次數(shù),讓內(nèi)核在運(yùn)行時(shí)表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領(lǐng)創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預(yù)覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內(nèi)核版本為 Linux 6.8,這次更新帶來(lái)了諸多優(yōu)化和改進(jìn),進(jìn)一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領(lǐng)域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來(lái)看看詳細(xì)安裝指南2025-01-16