O motivo pelo qual não está usando seu endereço MAC real é porque o código está mal escrito. A função mac_address
em uuid_mac.c
tem este bloco de código:
if ((s = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
return FALSE;
sprintf(ifr.ifr_name, "eth0");
if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0) {
close(s);
return FALSE;
}
Ele está procurando o endereço MAC da interface eth0
e, silenciosamente, retornando a um endereço multicast local gerado aleatoriamente caso não consiga encontrá-lo. Se sua interface de rede for chamada eth1
ou wlan0
ou qualquer outra coisa, ela não conseguirá encontrá-la.
Eu consideraria isso um bug no software. Ele deve usar o endereço MAC da interface de hardware correspondente à rota padrão atual e permitir que o usuário especifique uma interface alternativa, se desejado. Eu recomendaria reportar isso upstream.
Em relação ao fuso horário: o UUID não armazena o fuso horário. As informações de hora no UUID são armazenadas como hora UTC, e é assim que uuid -d
a exibe. Um aprimoramento no programa uuid
pode ser fornecer uma opção para exibir os horários de acordo com o fuso horário local durante a decodificação - mas de qualquer forma, essas informações não são armazenadas dentro do próprio UUID.