接收到的可用WiFi网络的MAC地址不正确

接收到的可用WiFi网络的MAC地址不正确,c,wifi,C,Wifi,我试图在这个区域找到可用“Wi_-Fi”的MAC地址,但我收到了错误的MAC地址(至少我确定这里有1个接入点MAC地址,我知道这与我收到的东西不一样) 我的代码是: char MAC[64]; int len=sizeof(MAC)/sizeof(int); int i; for(i=1;i<len;i++){ MyScanResults = WFScanList(i);

我试图在这个区域找到可用“Wi_-Fi”的MAC地址,但我收到了错误的MAC地址(至少我确定这里有1个接入点MAC地址,我知道这与我收到的东西不一样)

我的代码是:

       char MAC[64];

         int len=sizeof(MAC)/sizeof(int);
         int i;
            for(i=1;i<len;i++){
            MyScanResults = WFScanList(i);
           //unsigned long long testMac =MyScanResults.bssid[i];
           unsigned char* pTestMac = (unsigned char*)&MyScanResults.bssid[i];
           sprintf(MAC, "%02x:%02x:%02x:%02x:%02x:%02x",
           (unsigned)pTestMac[6],
           (unsigned)pTestMac[5],
           (unsigned)pTestMac[4],
           (unsigned)pTestMac[3],
           (unsigned)pTestMac[2],
           (unsigned)pTestMac[1]
           );
charmac[64];
int len=sizeof(MAC)/sizeof(int);
int i;

对于(i=1;i,您的代码没有多大意义

您甚至在声明
i
之前就调用了
MyScanResults=WFScanList(i);
。而且,来自
1
的循环和索引非常可疑

我还认为
I
的使用自始至终都是非常奇怪的,将指针计算到
MyScanResults.bssid
,有效地将其切片,这是不正确的

我认为你的循环应该是这样的:

for(i=0; i < WFNetworkFound; i++)
{
    const tWFNetwork myScanResults = WFScanList(i);
    sprintf(MAC, "%02x:%02x:%02x:%02x:%02x:%02x",
       myScanResult.ssid[0],
       myScanResult.ssid[1],
       myScanResult.ssid[2],
       myScanResult.ssid[3],
       myScanResult.ssid[4],
       myScanResult.ssid[5]);
(i=0;i { const tWFNetwork myScanResults=WFScanList(i); sprintf(MAC,“%02x:%02x:%02x:%02x:%02x:%02x:%02x”, myScanResult.ssid[0], myScanResult.ssid[1], myScanResult.ssid[2], myScanResult.ssid[3], myScanResult.ssid[4], myscansult.ssid[5]);

这假设您已经运行了扫描,因此全局变量
WFNetworkFound
已经更新。它还假设您使用的是openPicus,因此我从中获取的一两个东西是有效的。

呃,您知道C数组索引从0开始,对吧?因为您的代码使它看起来像您没有。是的,但当我放置1时,它是无效的他屏蔽断开连接,不扫描任何网络。好吧,F4:36在那里,但有一个地方(你的索引不可靠?),并反转。第一个字节似乎已被覆盖?子字符串“sme6”对你有什么意义吗?我不知道“sme6”是什么意思意思?每次重新连接后,例如,替换位现在是:MAC:65 36 F4 C6 17 12我的源代码中的是序列是真的,但这里我犯了错误。当它从0开始时,代码没有显示任何输出。非常感谢。只需替换“myScanResult.ssid[…]”而不是“(unsigned)pTestMac[]”,我就可以得到正确的结果。