回答
沒有公共API來獲取此信息。
如果這是一個內部或越獄應用程序,您可以通過liblockdown.dylib
得到kLockdownBluetoothAddressKey
鍵的值在所有設備上我能得到我的手,下面的規則似乎也適用 - iPhone的WiFi MAC地址是一個比iPhone大的藍牙MAC地址 - iPad wifi MAC地址是比iPad藍牙MAC地址少一個。
如果人們在iPhone或iPad上檢查這些信息會有幫助,這樣我們就可以增加對理論的信心。我檢查了一些iPhone4,iPhone3和iPad1設備。
您可以通過打開設置檢查 - 通用 - 關於 ,看着「Wi-Fi地址」和「藍牙」
如果理論是正確的,下面法律代碼將檢索您的藍牙MAC地址:我的iPhone4的iOS 5.0.1
#include <sys/types.h>
#include <sys/socket.h>
#include <ifaddrs.h>
#include <netdb.h>
#include <net/if_dl.h>
#include <string.h>
#if ! defined(IFT_ETHER)
#define IFT_ETHER 0x6/* Ethernet CSMACD */
#endif
void doMacTest() {
BOOL success;
struct ifaddrs * addrs;
const struct ifaddrs * cursor;
const struct sockaddr_dl * dlAddr;
const uint8_t * base;
// We look for interface "en0" on iPhone
success = getifaddrs(&addrs) == 0;
if (success) {
cursor = addrs;
while (cursor != NULL) {
if ((cursor->ifa_addr->sa_family == AF_LINK)
&& (((const struct sockaddr_dl *) cursor->ifa_addr)->sdl_type == IFT_ETHER)
&& (strcmp(cursor->ifa_name, "en0") == 0)) {
dlAddr = (const struct sockaddr_dl *) cursor->ifa_addr;
base = (const uint8_t *) &dlAddr->sdl_data[dlAddr->sdl_nlen];
if (dlAddr->sdl_alen == 6) {
fprintf(stderr, ">>> WIFI MAC ADDRESS: %02x:%02x:%02x:%02x:%02x:%02x\n", base[0], base[1], base[2], base[3], base[4], base[5]);
fprintf(stderr, ">>> IPHONE BLUETOOTH MAC ADDRESS: %02x:%02x:%02x:%02x:%02x:%02x\n", base[0], base[1], base[2], base[3], base[4], base[5]-1);
fprintf(stderr, ">>> IPAD BLUETOOTH MAC ADDRESS: %02x:%02x:%02x:%02x:%02x:%02x\n", base[0], base[1], base[2], base[3], base[4], base[5]+1);
} else {
fprintf(stderr, "ERROR - len is not 6");
}
}
cursor = cursor->ifa_next;
}
freeifaddrs(addrs);
}
}
理論也適用於我的iPad 3 – 2012-11-06 14:17:18
理論在我的iPhone 4上正確,但不在iPod 4上 - 最後5個十六進制數字不同。 – newenglander 2013-03-21 15:34:21
在iOS 7及更高版本中,如果您要求輸入iOS設備的MAC地址,系統將返回值02:00:00:00:00:00 https://developer.apple.com/news/?id= 8222013a – 2013-09-27 14:44:24
MAC地址是按以下順序比較它們的最後一位數字:
63 = Bluetooth
64 = WiFi
iPad2 v5.0.1 was:
0D = Bluetooth
0E = WiFi
iPod Touch第二代iOS 4.2.1完全不同。
??.FC = WiFi
xx.04 = Bluetooth
- 1. 獲取藍牙MAC上的iPhone地址
- 2. 如何在iOS7中以編程方式獲取iPhone設備的藍牙地址
- 3. 如何以編程方式獲取iPhone 3G S的MAC地址?
- 4. 通過adb獲取藍牙MAC地址
- 5. 如何從本地PC獲取藍牙MAC地址?
- 6. 如何獲取藍牙HID設備的MAC地址?
- 7. 如何在Android上以編程方式從Mac地址獲取IP地址?
- 8. 如何以編程方式更改藍牙參數iPhone?
- 9. 如何從BluetoothSerialPortInfo類獲取藍牙地址的實際格式?
- 10. 獲取藍牙設備的地址
- 11. 使用BluetoothManager私有框架獲取藍牙的MAC地址
- 12. 如何以編程方式獲取WinRT(Windows 8)中的MAC地址?
- 13. Mac OS X /藍牙:以編程方式禁用簡單配對?
- 14. 以編程方式打開藍牙
- 15. Android以編程方式藍牙配對
- 16. 以編程方式打開iPhone SDK中的藍牙?
- 17. C中的藍牙MAC地址
- 18. 更改Raspbian的藍牙MAC地址
- 19. 如何通過藍牙從PC獲得移動MAC地址?
- 20. iPhone中的藍牙編程
- 21. 如何以編程方式獲取Window phone 7的IP地址
- 22. 如何以編程方式獲取Linux上堆的地址
- 23. iPhone以編程方式同時使用wifi和藍牙?
- 24. iPhone API - 周圍設備的藍牙MAC地址?
- 25. 確定適用於iPhone和Android的唯一藍牙MAC地址
- 26. CoreBluetooth:如何獲取我連接的BLE設備的藍牙MAC地址?
- 27. 如何獲取我的android藍牙設備的ID或MAC地址?
- 28. Android藍牙LE MAC地址隨機化
- 29. UUID和MAC地址藍牙BLE
- 30. 檢索iPhone上的藍牙地址
謝謝。我希望可以像我們檢索WiFi MAC地址一樣獲得它... – drkbrd 2010-06-04 07:22:34
我認爲,如果iPhone通過藍牙進行共享模式,則可行。 – rpetrich 2010-06-04 18:51:19
請通過liblockdown.dylib發佈使用kLockdownBluetoothAddressKey密鑰的代碼片段 – 2012-02-16 15:16:53