我试图获取所有可用无线网络的MAC地址。正则表达式从netsh获得MAC地址wlan
目前正在使用: 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地址传递给Google地理位置API并获取位置信息。
任何想法?
谢谢!
谢谢......但我无法在我的代码中使用一个文件。我正在使用CPP。直接使用netsh不起作用... – Tzar
你不能在C++中使用正则表达式?你为什么要分批解析? –
我还是CPP的新手。我试图创建一个这些MAC地址的数组,这些地址将被传递给Google地理定位API。你可以帮忙用这个cpp代码片段吗? – Tzar