Por que min=1000
e max=10000
? Existem 65536 valores possíveis de dois octetos, há alguma razão para usar apenas parte deles?
Em shells que possuem $RANDOM
(Bash / ksh93 / zsh pelo menos), você faz isso completamente no shell:
printf "00:0c:29:51:%02x:%02x\n" $(( $RANDOM % 256 )) $(( $RANDOM % 256 ))
Ou, se você quiser armazenar os endereços gerados em um arquivo e tentar novamente até obter um novo, algo assim:
file=./generated_macs
gen() {
printf "00:0c:29:51:%02x:%02x\n" $(( $RANDOM % 256 )) $(( $RANDOM % 256));
}
while mac=$(gen); grep -q "$mac" "$file" ; do true ; done
echo "$mac" >> "$file"