1

私の最新のプロジェクトでは、.NET を使用して C# から Windows ARP テーブルにアクセスするために GetIpNetTable を使用しています。

MAC アドレスを見ると、エントリの最後の 2 バイト (7 と 8) が変化し続けていることに気付きました。MAC アドレスは通常 6 バイトしかないため、この 2 バイトには何が含まれているのだろうか...

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;
4

1 に答える 1

2

リンク層は常にイーサネットであるとは限らないため、物理アドレスは常に MAC であるとは限らず、したがって常に 48 ビットとは限りません。このフィールドには EUI-64 アドレスが含まれていると思います。これは、イーサネットの場合、MAC EUI-48 アドレスの途中に FF-FF を挿入することによって生成されます。

于 2012-02-09T16:06:09.980 に答える