2017-10-13 42 views
0

我已经找到了Apple如何获取计算机的MAC地址的示例,但它似乎以字节数组(或类似的方式)返回它。在OS X上获取MacAddress的NSString

对于我的应用程序,我需要它在NSString(如“00:00:00:00:00”)。我对此很新,我试图将示例代码似乎返回的CFData(我认为)转换成没有成功。

我看到在示例代码中它会返回kernResult。如果那里有MAC地址,我怎样才能离开kernResult并进入NSString?

+0

检查这个问题了(这是适用于iOS,但它仍然可以帮助):https://stackoverflow.com/questions/677530/how-can-i-programmatically -get-the-mac-address-of-an-iphone – the4kman

+0

谢谢。我会给这个镜头。我看到它是针对iOS的,并且忽略了它,因为我不知道这也适用于Mac。 – lightbord

回答

0

参考GetPrimaryMACAddress只写

NSString *macAddress = [NSString stringWithFormat:@"%02x:%02x:%02x:%02x:%02x:%02x", 
     MACAddress[0], MACAddress[1], MACAddress[2], MACAddress[3], MACAddress[4], MACAddress[5]]; 
+0

我将样本中的主函数从int main(int argc,char * argv [])''改为'NSString * getmac()'。然后不是返回'kernResult',而是返回'NSString'' macAddress'。然后,我需要Obj-C中的字符串,我只需调用'getmac()'。这似乎工作。然而,这是否安全(又不是一个糟糕的编程习惯)?如果示例代码无法检索MAC地址,结果如何? – lightbord

+0

是的,你可以做到这一点。如果出现错误,则返回错误消息。但不要忘记释放迭代器。 – vadian

+0

迭代器没有在示例代码中发布(使用'(void)IOObjectRelease(intfIterator);')?我刚刚将示例代码复制到AppDelegate的顶部,并进行了我提到的更改。 – lightbord