Mac OS X 开发对我来说是一个相当新的领域,我正在移植一些软件。对于软件许可和注册,我需要能够生成某种硬件 ID。它不必是任何花哨的东西;以太网 MAC 地址、硬盘序列号、CPU 序列号等。
我在 Windows 上已经了解了,但在 Mac 上却一无所知。如果我知道我需要做什么,或者我可以去哪里获取这方面的信息,那就太棒了!
Edit:
对于对此感兴趣的其他人,这是我最终在 Qt 的 QProcess 类中使用的代码:
QProcess proc;
QStringList args;
args << "-c" << "ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { print $3; }'";
proc.start( "/bin/bash", args );
proc.waitForFinished();
QString uID = proc.readAll();
注意:我使用的是 C++。
对于 C/C++:
#include <IOKit/IOKitLib.h>
void get_platform_uuid(char * buf, int bufSize) {
io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/");
CFStringRef uuidCf = (CFStringRef) IORegistryEntryCreateCFProperty(ioRegistryRoot, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0);
IOObjectRelease(ioRegistryRoot);
CFStringGetCString(uuidCf, buf, bufSize, kCFStringEncodingMacRoman);
CFRelease(uuidCf);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)