Всем привет! Меня интересует вопрос, стоит ли переводить MAC адрес, извлеченный из ethernet пакета из сетевого порядка в локальный порядок байтов? Или он записан как 6 отдельных однобайтовых чисел?
Спасибо за ответы. Я использую pcap. Код примерно такой
typedef unsigned short u16;
u16 extract_16bits(const void *p)
{
return ((u16)ntohs(*(const u16 *)(p)));
}
void callback(u_char *args, const struct pcap_pkthdr* pkthdr, const u_char* packet)
{
int data_offset = 12; //DMAC + SMAC
u16 etype = extract_16bits(packet + data_offset);
....
}
void main(void)
{
...
pcap_loop(descr, -1, callback, NULL);
...
}
Меня интересует тот момент, при извлечении mac адреса из packet, нужно ли выполнять что то вроде ntoh к mac адресу