Direcciones MAC en iOS 10.2

Parece que a partir de iOS 10.2 , Apple ahora ha impedido el acceso a todas las direcciones MAC, no solo a la de su propio dispositivo.

Sin embargo, hay algunas aplicaciones en la tienda que parecen administrar eso todavía, .eg Fing y Net Analyzer . ¿Siguen funcionando porque se comstackron con un SDK anterior o tienen trucos especiales para recostackr la dirección MAC?

¿Alguien puede compartir un trabajo para get las direcciones MAC para dispositivos iOS 10.2 en WiFi?

Este es solo el código de testing, solo para dar una idea de cómo get la dirección de Mac. Pero estoy seguro de que Apple cerrará pronto esta opción.

 -(void) jan_mac_addr_test:(const char*) host { #define BUFLEN (sizeof(struct rt_msghdr) + 512) #define SEQ 9999 #define RTM_VERSION 5 // important, version 2 does not return a mac address! #define RTM_GET 0x4 // Report Metrics #define RTF_LLINFO 0x400 // generated by link layer (eg ARP) #define RTF_IFSCOPE 0x1000000 // has valid interface scope #define RTA_DST 0x1 // destination sockaddr present int sockfd; unsigned char buf[BUFLEN]; unsigned char buf2[BUFLEN]; ssize_t n; struct rt_msghdr *rtm; struct sockaddr_in *sin; memset(buf,0,sizeof(buf)); memset(buf2,0,sizeof(buf2)); sockfd = socket(AF_ROUTE, SOCK_RAW, 0); rtm = (struct rt_msghdr *) buf; rtm->rtm_msglen = sizeof(struct rt_msghdr) + sizeof(struct sockaddr_in); rtm->rtm_version = RTM_VERSION; rtm->rtm_type = RTM_GET; rtm->rtm_addrs = RTA_DST; rtm->rtm_flags = RTF_LLINFO; rtm->rtm_pid = 1234; rtm->rtm_seq = SEQ; sin = (struct sockaddr_in *) (rtm + 1); sin->sin_len = sizeof(struct sockaddr_in); sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr(host); write(sockfd, rtm, rtm->rtm_msglen); n = read(sockfd, buf2, BUFLEN); if (n != 0) { int index = sizeof(struct rt_msghdr) + sizeof(struct sockaddr_inarp) + 8; // savedata("test",buf2,n); NSLog(@"IP %s :: %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x",host,buf2[index+0], buf2[index+1], buf2[index+2], buf2[index+3], buf2[index+4], buf2[index+5]); } }