首页 > 系统相关 >Linux ARM生成随机的MAC地址

Linux ARM生成随机的MAC地址

时间:2024-08-20 09:22:43浏览次数:6  
标签:02X 00 Linux MAC echo mac address ARM

背景

有一批产品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/.$//'`

标签:02X,00,Linux,MAC,echo,mac,address,ARM
From: https://blog.csdn.net/u010634139/article/details/141342806

相关文章

  • Linux 进程
    进程含义:进程是一个程序执行的过程,会去分配内存资源,具有并发特性(同一时段,运行多个任务)。进程的基本特性:(1)动态性:进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。动态性是进程最基本的特征。(2)并发性:指多个进程实体......
  • 记录下首次在MacBook(Retina,2017)上用“黑苹果”升级Sonoma的体验
    中文互联网平台投递说明:本文的写作风格,和以往我的行文风格会有所不同。主要是我打算把这篇极客体验类的文章发在外网上(因为外网对这类文章的包容度和感兴趣程度都会更高,中国大陆玩“黑苹果”的人还是太少,没什么流量),因此我不得不以适合英文表达和阅读的方式来撰写本文,以便外网......
  • ARM体系架构
    ARM体系架构1.指令系统RISC:精简指令集指令系统 --ARM  寻址方式:寻址方式比较少(10种以内)  指令集中指令的条数:100条左右  大的、统一的寄存器文件;  装载/保存结构(Load/Store),数据处理操作只针对寄存器的内容,而不直接对存储器进行操作;  统一......
  • Linux scp 文件传输
    scp将本服务器的文件传输到远程服务器基本语法scp`[源路径]``[目标服务器]`:`[目标路径]`样例将本服务器123.txt文件传输到远程服务器并重命名为456.txtscp123.txtuser@remote_server:/home/tabu/456.txt使用-r选项复制整个目录scp-rtabu/*user@remote_server:/ho......
  • Linux搭建环境:从零开始掌握基础操作(二)
    ​​您好,我是程序员小羊!前言软件测试第一步就是搭建测试环境,如何搭建好测试环境,需要具备两项的基础知识:1、Linux命令:软件测试第一个任务,一般都需要进行环境搭建,一部分,环境搭建内容是在服务器上实现的,跟服务器交互(没有图形化页面),需要使用Linux命令。2......
  • Redis在Linux(Centos7)单机部署和集群部署
    目录一、单机部署1、软件准备 2、安装配置3、启动Redis二、Redis集群2.1、主从模式2.1.1、作用 2.1.2、规划图2.1.3、具体配置准备工作 主从配置启动测试 2.1.4、主从复制原理主从全量复制主从增量同步(slave重启或后期数据变化)2.1.5、缺点 2.2、哨兵......
  • 简单的linux系统学习笔记——08
    一、文件属性-权限属性33555523-rw-r--r--.1rootroot1586月72013/etc/hosts-rw-r--r-- 【rw-】:权限是属主的权限 【r--】:权限是属组的权限 【r--】:权限是其他人的权限r//读取权限 针对文件:含义是,可以打开文件,查看文件的内容 针对目录:含义是,可以查......
  • 简单的linux系统学习笔记——09
    一、用户分类1.root//皇帝用户,定制规则用户,系统高级管理员【uid,gid0】2.普通用户//有特定的权限,权限是root授予的【uid,gid大于1000】3.傀儡用户//没有家目录,不能登录系统;【0-999】二、用户相关的配置文件1.用户列表文件[root@c7-100~]#cat/etc/passwdroot:x......
  • C++ 获取Linux 服务器CPU占用率+内存空闲率(亲测绝对可以运行)
    转自:C++获取Linux服务器CPU占用率+内存空闲率(亲测绝对可以运行)-远征i-博客园(cnblogs.com)代码来自网络,部分修改,亲测绝对可用C++:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<unistd.h>usingnamespacestd;type......
  • Linux学习/TCP Socket通信
    案例案例一server.c#include<stdio.h>//标准输入输出#include<stdlib.h>//提供通用的工具函数,例如内存分配和程序退出。#include<string.h>//提供字符串处理函数。#include<unistd.h>//提供对POSIX操作系统API的访问,包括对文件描述符的操作。#include<arpa/i......