./randommac -xxx #xxx为你想生成的数目
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void newMacAddr(int randnum){
int bit;
char list[18];
int j;
srand(randnum);
for(j = 0; j < 17; j++){
bit = rand() % 16;
if((j+1)%3 == 0){
list[j] = ':';
}else{
if(bit >= 10){
list[j] = bit - 10 + 97;
}else{
list[j] = bit + 48;
}
}
}
printf("%s\n", list);
}
int main(int argc, char * argv[]){
if(argc != 2){
printf("参数数量不为1");
return 0;
}
int number = atoi(argv[1] + 1);
if(number < 1){
return 0;
}
int randlist[number];
int index;
for(index = 0; index < number; index++){
randlist[index] = rand();
}
for(index = 0; index < number; index++){
newMacAddr(randlist[index]);
}
return 0;
}
或者
wanglei@wanglei-PC:~$ vm_mac="52:54:$(dd if=/dev/urandom count=1 2>/dev/null |md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4/')"
wanglei@wanglei-PC:~$ echo $vm_mac