gpt4 book ai didi

ios - iOS 10.2 中的 MAC 地址

转载 作者:IT王子 更新时间:2023-10-29 07:57:48 25 4
gpt4 key购买 nike

看起来从 iOS 10.2 开始,Apple 现在已阻止访问所有 MAC 地址,而不仅仅是您自己的设备。

但是,商店中的一些应用程序似乎仍然可以管理该应用程序,例如 FingNet Analyzer。这些仍然有效是因为它们是针对较旧的 SDK 编译的,还是它们具有收集 MAC 地址的特殊技巧?

谁能分享一个变通方法来获取 iOS 10.2 设备在 WiFi 上的 MAC 地址?

最佳答案

这只是测试代码,只是为了给出如何获取 Mac 地址的想法。但我相信苹果很快就会关闭这个选项。

-(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 (e.g. 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]);

}
}

关于ios - iOS 10.2 中的 MAC 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41283688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com