因为各类缘由,我们须要获取机器上的mac地址,然而现今虚拟机的存在,促使我们不好分辨哪个是真正的数学网卡。在网路上也说明了一些技巧。在这儿我先记录一下。获取mac的方式,可以一下“取得系统中网卡MAC地址的三种方式”。我们里是通过来获取网卡信息的,这个返回的结果中,我非常的须要主要下边几个数组,为何这儿没有用到呢。其中有一种方法就是通过中是否存在PCI这样的字符串来进行判定是否为化学网卡的。
我要介绍的方式是通过使用来判定的。这个就要涉及到注册表和函数了,其实有点复杂。是一个guid数据,这个数据可以让我们查询这个所在网卡信息。HLM\\\\\{-E325-11CE-BFC1-}\{}\下边去瞧瞧,在这个下边通常有,这个可以用了表示是否为无线网卡,还有一个Name,这个是用于在网路联接中显示的名称,通常真是的pci板载网卡称作本地联接虚拟网卡和物理网卡,其实也可以用这个方式来判定是否为化学网卡了。还有一个就是,这个指是有系统在枚举pci的时侯设置的,这个值显然就是id虚拟网卡和物理网卡,你可以在设备管理其中听到这个。
接出来就是我想说的拿来判定是否为化学网卡的方式了。虽然这个挺简单的,只要我们晓得化学网卡,肯定是挂在某个bus里面的,因而对于虚拟网卡,肯定是没有bus号的。主要的代码在下边。我想应当可以说明白了。
char[]="-E325-11CE-BFC1-";
hr=(,&guid);
=(&guid,NULL,NULL,);//gettheinfo
if(==)
("");
char[]={0};
char[]={0};
ULONGdwLen=;
ULONG=-1;
for(inti=0;o(,i,&);++i)//enuminfo
(,());
=-1;
(,&,,,NULL);
if(!(,&,,NULL,(PBYTE)&,
(ULONG),NULL))
;
if(.()==0&&!=-1)
bRet=TRUE;
break;
//释放set
();