我在无线路由器上运行此命令:
#: iwlist wlan00 scanning
wlan0 Scan completed :
Cell 01 - Address: 16:76:02:7D:A5:25
.....
所以提到的“地址”是否检测到接入点的MAC地址?
我查看 iwlib.h , ap_addr 的类型为 sockaddr
当我第一次尝试将其打印为%d 时,它给了我类似于71654的输出,所以我认为它的格式可能不正确。
我还尝试使用此答案作为指南打印信息:https://stackoverflow.com/a/11684101/1306468
但是我收到了这个错误:
error: 'sockaddr' has no member named 'sa_len'
我也尝试过您的信息
printf("%d\n", result->ap_addr.sa_family);
在所有检测到的接入点中输出1作为输出。
任何人都知道如何打印出这个值,所以它与 iwlist wlan0扫描地址的格式相同?
非常感谢。
答案 0 :(得分:0)
代码我发现看起来更像是这样:
printf ("Target hardware (MAC) address: ");
for (i=0; i<5; i++) {
printf ("%02x:", arpheader->target_mac[i]);
}
答案 1 :(得分:0)
'fff ...'是因为顶部位已设置,它被解释为符号位并扩展为填充unsigned int。 (注意f显示在9D,FE和D0上,所有这些都设置了80位)
您的解决方案有效,或者将参数转换为unsigned char也应该有效。