Linux ARM生成随机的MAC地址

背景

有一批产品ARM板出来全都是同一个MAC地址: 00:00:35:00:11:55
这就导致获取的IP都是一样的,需要让他们启动后获取各自不一样的IP,因此每个板子都需要获得其自己的MAC地址(后三个BYTE区分身份): “00:00:35:XX:XX:XX”

设置MAC解决此问题

1、临时设定网卡的MAC地址(重启后失效)

$ ifconfig eth0 hw ether [mac_address]

系统上电执行配置:

  • 第一次启动时生产一个随机的MAC,记录该MAC地址
  • 下一次启动直接读取这个本机专属MAC

/etc/init.d/network.sh, 添加配置的实现:

echo "Set mac address and ifconfig eth0 up .."    

if [ -f "mac_address" ];then
    echo "Load existing mac_address.."
    ifconfig eth0 hw ether $(cat mac_address)
else
    echo "Not setup mac_address yet, create one."
    echo "$(hexdump -n3 -e'/3 "08:00:27" 3/1 ":%02X"' /dev/random)" > mac_address
    ifconfig eth0 hw ether $(cat mac_address)
fi

ifconfig eth0 up

用shell脚本来实现随机的MAC备用方法

$ echo "00:00:35$(dd bs=1 count=3 if=/dev/random 2>/dev/null |hexdump -v -e '/1 ":%02X"')"
$ echo "$(hexdump -n3 -e'/3 "00:00:35" 3/1 ":%02X"' /dev/random)"
$ printf '00:00:35:%02X:%02X:%02X\n' $[RANDOM%256] $[RANDOM%256] $[RANDOM%256]
$ echo 00:00:35:`openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//'`
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值