我已經找到了Apple如何獲取計算機的MAC地址的示例,但它似乎以字節數組(或類似的方式)返回它。在OS X上獲取MacAddress的NSString
對於我的應用程序,我需要它在NSString(如「00:00:00:00:00」)。我對此很新,我試圖將示例代碼似乎返回的CFData(我認爲)轉換成沒有成功。
我看到在示例代碼中它會返回kernResult。如果那裏有MAC地址,我怎樣才能離開kernResult並進入NSString?
我已經找到了Apple如何獲取計算機的MAC地址的示例,但它似乎以字節數組(或類似的方式)返回它。在OS X上獲取MacAddress的NSString
對於我的應用程序,我需要它在NSString(如「00:00:00:00:00」)。我對此很新,我試圖將示例代碼似乎返回的CFData(我認爲)轉換成沒有成功。
我看到在示例代碼中它會返回kernResult。如果那裏有MAC地址,我怎樣才能離開kernResult並進入NSString?
NSString *macAddress = [NSString stringWithFormat:@"%02x:%02x:%02x:%02x:%02x:%02x",
MACAddress[0], MACAddress[1], MACAddress[2], MACAddress[3], MACAddress[4], MACAddress[5]];
我將樣本中的主函數從int main(int argc,char * argv [])''改爲'NSString * getmac()'。然後不是返回'kernResult',而是返回'NSString'' macAddress'。然後,我需要Obj-C中的字符串,我只需調用'getmac()'。這似乎工作。然而,這是否安全(又不是一個糟糕的編程習慣)?如果示例代碼無法檢索MAC地址,結果如何? – lightbord
是的,你可以做到這一點。如果出現錯誤,則返回錯誤消息。但不要忘記釋放迭代器。 – vadian
迭代器沒有在示例代碼中發佈(使用'(void)IOObjectRelease(intfIterator);')?我剛剛將示例代碼複製到AppDelegate的頂部,並進行了我提到的更改。 – lightbord
檢查這個問題了(這是適用於iOS,但它仍然可以幫助):https://stackoverflow.com/questions/677530/how-can-i-programmatically -get-the-mac-address-of-an-iphone – the4kman
謝謝。我會給這個鏡頭。我看到它是針對iOS的,並且忽略了它,因爲我不知道這也適用於Mac。 – lightbord