精确定义 OSX 上的"Primary Network Interface"
Precise definition of "Primary Network Interface" on OSX
我正在考虑使用MAC地址作为OSX上机器标识符的一部分。developer.apple.com上的GetPrimaryMACAddress.c
示例演示了如何获取"主"以太网接口(https://developer.apple.com/library/mac/samplecode/GetPrimaryMACAddress/Listings/GetPrimaryMACAddress_GetPrimaryMACAddress_c.html)的MAC地址。我的问题是"主以太网接口的确切定义是什么?"评论将其描述为"内置"网卡。在具有多个内置接口的系统上会发生什么?例如,Mac pro可以有两个有线插头,而旧款Macbook pro则有有线和无线接口。
我能找到的唯一文档是IONetworkInterface.h
参考(https://developer.apple.com/library/mac/documentation/Kernel/Reference/IONetworkInterface_header_reference/Reference/reference.html)。它将kIOPrimaryInterface
定义为描述"接口是主网络接口还是内置网络接口"。这并没有回答我的问题,当有多个内置接口时会发生什么。
根据苹果的开源页面位于这里
我认为你正在寻找这个特定的代码/*返回Base-64编码的MD5哈希'username:primary-mac-address' */。
//------------------------------------------------------------------------------
// Returns true if the receiver of this method is the system's primary
// network interface.
bool IONetworkInterface::isPrimaryInterface() const
{
IOService * provider = _driver;
bool isPrimary = false;
if ( provider ) provider = provider->getProvider();
// Look for the built-in property in the ethernet entry.
if ( provider && provider->getProperty("built-in") && getUnitNumber() == 0)
{
isPrimary = true;
}
return isPrimary;
}
相关文章:
- Android NDK 编译 LAME HAVE_MPGLIB > 'interface.h' 文件未找到
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- 为什么我的功能在使用 goto 时会给我带来"expected primary-expression before '}' token"?
- 我应该有 2 个单独的班级,一个用于"logic",一个用于"graphic interface"?
- 如何使用带有Qt和C++的"Interface Class"进行通信
- 如何修复此错误"expected primary expression before 'int'"?
- 使用结构和数组时的"expected primary expression before '.' token"
- 如何使用Java Native Interface在C++中导入python库-Android Studio
- c++如何使用Curl Multi-Interface连续循环
- PyBind - Python to C++ interface
- 在C++中声明"interface",而不是将其 vtable 发送到每个翻译单元
- 复制<Interface>作用类似于值的类的shared_ptr
- 从C++中的"interface"访问派生类成员?
- 推导模板类重载方法的地址会导致"error: expected primary-expression before ‘decltype’"
- "error: expected primary-expression before '<=' token" 我做错了什么?
- "expected primary expression __"是什么意思?
- 模板成员函数调用 -- "error: expected primary-expression before 'int'"
- Visual C++, Windows Update Interface (IUpdate) <wuapi.h>, get_MsrcSeverity
- 我的代码看起来不错。为什么我要得到"error: expected primary-expression before ')' token"?
- 精确定义 OSX 上的"Primary Network Interface"