我的Qt应用程序需要唯一地识别它运行的计算机。为此,我的当前代码使用QNetworkInterface
类来探测其mac地址,如下所示:
QNetworkInterface intf;
#ifdef Q_WS_MAC
intf = QNetworkInterface::interfaceFromName(QString("en0"));
#endif
#ifdef Q_WS_WIN
intf = QNetworkInterface::interfaceFromIndex(0);
#endif
if(intf.isValid())
QString mac_address = intf.hardwareAddress();
它似乎适用于我测试过的几台机器。但上述策略是否可以保证适用于所有机器?例如,可以将接口名称重命名为与" en0"在Mac上?如果是这样,是否有更好的方法来探测不会随时间变化的接口的mac地址?