我正在尝试获取周围所有可用无线网络的 MAC 地址。
目前正在使用:
netsh wlan show networks mode=bssid | findstr BSSID
我得到它的输出(真正的 MAC 隐藏以保护隐私):
BSSID 1 : 2c:ab:25:xx:xx:xx BSSID 1 : 00:22:2d:xx:xx:xx BSSID 1 : c4:3d:c7:xx:xx:xx BSSID 1 : 00:27:22:xx:xx:xx BSSID 1 : 84:c9:b2:xx:xx:xx BSSID 1 : 00:25:5e:xx:xx:xx BSSID 1 : 00:06:5a:xx:xx:xx BSSID 2 : 00:06:5a:xx:xx:xx BSSID 1 : 00:06:5a:xx:xx:xx BSSID 2 : 00:06:5a:xx:xx:xx BSSID 1 : 00:06:5a:xx:xx:xx BSSID 2 : 00:06:5a:xx:xx:xx BSSID 1 : 00:06:5a:xx:xx:xx BSSID 2 : 00:06:5a:xx:xx:xx BSSID 3 : 00:25:5e:xx:xx:xx BSSID 4 : 00:25:5e:xx:xx:xx BSSID 5 : 00:25:5e:xx:xx:xx BSSID 1 : 00:27:22:xx:xx:xx BSSID 1 : 00:27:22:xx:xx:xx BSSID 1 : fc:b0:c4:xx:xx:xx BSSID 1 : fc:b0:c4:xx:xx:xx
我需要实现一个正则表达式,它只能输出 MAC 地址(即每行的最后 17 个字符)需要将 MAC 地址存储在 C++ 中的数组中。
我当前的代码是这样获取输出的:
#include <iostream>
#include <string>
#include <stdio.h> // for _popen() and _pclose()
using namespace std;
int main()
{
char buff[512];
buff[0]=0;
string cmd="netsh wlan show networks mode=bssid | findstr BSSID";
FILE *fpipe = _popen(cmd.c_str(),"rt");
if(fpipe==NULL)
cout<<"Failed to open"<<endl;
else
cout<<"Opened pipe successfully";
while(fgets(buff,sizeof(buff),fpipe)!=NULL){
cout<<buff<<endl;
}
_pclose(fpipe);
}
有人可以为我提供一个代码片段来实现提升正则表达式以仅获取数组中的 MAC 地址吗?我的意图是将这些 MAC 地址传递给谷歌地理定位 API 并获取位置。
有任何想法吗?
谢谢!