2

我在无线路由器上运行这个命令:

#: iwlist wlan00 scanning
wlan0    Scan completed :
          Cell 01 - Address: 16:76:02:7D:A5:25
          .....

那么提到的“地址”是检测到接入点的MAC地址吗?

我查看了iwlib.h并且ap_addrsockaddr类型

当我第一次尝试将其打印为%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 扫描地址的格式相同?

非常感谢。

4

2 回答 2

0

'fff...' 是因为设置了最高位,并且它被解释为符号位并扩展为填充无符号整数。(注意 f 出现在 9D、FE 和 D0 上,它们都设置了 80 位)

您的解决方案有效,或者将参数转换为 unsigned char 也应该有效。

于 2013-09-10T01:44:58.583 回答
0

我发现的代码看起来更像这样:

printf ("Target hardware (MAC) address: ");
for (i=0; i<5; i++) {
  printf ("%02x:", arpheader->target_mac[i]);
}
于 2013-07-28T17:37:34.110 回答