c# - 为什么系统调用 GetIpNetTable 的物理地址有 8 个字节(而不是 6 个字节)?

标签 c# windows mac-address arp

在我最新的项目中,我使用 GetIpNetTable 从 C# 使用 .NET 访问 Windows ARP 表

我注意到,当我查看 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;

最佳答案

由于链路层并不总是以太网,因此物理地址并不总是 MAC,因此也不总是 48 位。我想这个字段包含一个 EUI-64 地址,在以太网的情况下,它是通过将 FF-FF 插入 MAC EUI-48 地址的中间生成的。

关于c# - 为什么系统调用 GetIpNetTable 的物理地址有 8 个字节(而不是 6 个字节)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214263/

相关文章:

c# - 如何阻止InitializeComponent更改表单设计器代码?

c# - 在 .netstandard 2 中使用哪个 HttpRequest 类?

c++ - Windows 注销事件 C++

windows - 入门链接在 oracle 11g 服务器中不起作用

javascript - 在 Javascript 中将整数 MAC 地址转换为字符串

c# - 在调试期间在 Visual Studio 中自动附加到子进程

c# - Guid 与自动增量 int

windows - 如何在 cmd 中为 findstr 输出着色?

安卓 : How to get whether Bluetooth Device PC or Mobile?

python - 使用python从MAC获取IP地址