Почему физический адрес из системного вызова GetIpNetTable имеет 8 байт (а не 6)? - PullRequest
1 голос
/ 09 февраля 2012

В моем последнем проекте я использую GetIpNetTable для доступа к ARP-таблице Windows из C # с использованием .NET

. Когда я смотрел на MAC-адреса, я заметил, что последние два байта (7 и 8)мои записи постоянно менялись!Поскольку MAC-адреса обычно имеют только 6 байтов, мне было интересно, что содержат эти два байта ...

См. http://msdn.microsoft.com/en-us/library/cc704859%28v=prot.10%29.aspx

ypedef struct _MIB_IPNETROW {
  DWORD dwIndex;
  DWORD dwPhysAddrLen;
  BYTE bPhysAddr[8]; // WHY 8 BYTES??
  DWORD dwAddr;
  DWORD dwType;
} MIB_IPNETROW, 
 *PMIB_IPNETROW;

1 Ответ

2 голосов
/ 09 февраля 2012

Поскольку канальный уровень не всегда Ethernet, физический адрес не всегда MAC и, следовательно, не всегда 48-битный.Я предполагаю, что это поле содержит адрес EUI-64, который в случае Ethernet генерируется путем вставки FF-FF в середину MAC-адреса EUI-48.

...