【发布时间】:2018-01-05 15:15:49
【问题描述】:
要求:没有苹果开发者账号。
我不关心 iOS 设备。只需要 Mac(iMac、Mac mini 和 Macbook)的唯一 ID。
我使用过this approach,但它在某些最新的 Mac 上不再有效:
ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }'
为什么我认为它不起作用?
我从我的客户那里得到了一些反馈,这种方法得到了一些随机数。我检查了我的服务器收到的 ID:是的,它们是随机数(可能在 Mac 重启后重新生成)。
所以我的问题是:
2018 年现在如何获取 Mac 的唯一 ID?不需要编写 Objective-C 或 C++ 代码的方法是首选。
我正在尝试获取 C# 中的 ID:Mono、Unity3D 或 Xamarin。
【问题讨论】:
-
当你说“它不再工作”时,它会抛出错误吗?它只是返回一些非唯一的东西吗?
-
您是否从那里尝试过任何其他方法,您在寻找什么语言?通过
SCNetworkInterfaceCopyAll传递的下一个答案中的代码显示了一个正在使用的普通C 接口,尽管在该答案中包含在Objective-C 中。没有实际需要 [免费] 将CFArray等桥接到 Objective-C 类型,这对于使用该语言的人来说更容易。你要找的是 C 吗? -
我从我的客户那里得到了一些反馈,认为这种方法会得到一些随机数。我已经验证了我在服务器中收到的 ID:是的,它们是随机数。 @AdamV
-
NSTask不是必需的。您可以在IOKit框架中使用IOServiceMatching、IOServiceGetMatchingService和IORegistryEntryCreateCFProperty传递密钥kIOPlatformUUIDKey直接解析IOReg -
@Tommy 谢谢!我的 Mac 上没有发生随机数现象。所以我暂时没有尝试其他方法。我已经更新了问题:我正在尝试寻找 C# 解决方案。
标签: c# macos uniqueidentifier