Что-то вроде этого должно это сделать:
char mac[6 * 2 + 5 + 1];
for(size_t i = 0, pos = 0; i < sizeof ethernet->ether_dhost; i++)
{
if(i > 0)
mac[pos++] = ':';
sprintf(mac + pos, "%02x", (unsigned int) ethernet->ether_dhost[i] & 0xffu);
}
Это также вставляет двоеточия между каждым байтом, поэтому вывод будет выглядеть как DE:AD:BE:EF:BA:BE
, который как MAC-адреса обычно форматируются для Ethernet.
В случае с Python3 вам следует создать экземпляр Queue следующим образом:
from queue import Queue
working_queue = Queue()
Будьте осторожны с регистром первых букв ...