查看文章 |
Welcome!各位ScriptKid,欢迎来到脚本世界。 这年头,貌似除了我们呼吸的空气,什么都有假的,有的假的比那真的还真的。更别说在0101的虚拟世界了。hi,请问你是阿猫还是阿狗?:) 如何从一大堆诸如VMWARE之类的软件所模拟的假网卡中找到那块我们需要的真实的物理网卡并且确定确实有个真的网线插在上面,是摆在我们面前的第一个问题。更何况,用MAC地址来进行机器管理,相对还比较可靠^0^ WMI里主要有关网卡的类有三个:Win32_NetworkAdapter,Win32_NetworkAdapterConfiguration和Win32_NetworkAdapterSetting,都是位于CIMV2名称空间。 Win32_NetworkAdapterSetting就不说了,只有2个属性:Element和Setting。 Win32_NetworkAdapter,Win32_NetworkAdapterConfiguration里面都有关于网卡的大量的属性数据,看来还比较靠谱。 以下是我用来判断真实物理网卡的第一份代码: Set MacAddressInfos = WMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True") End If 判断条件是当该网卡在网络上使用IP,并且服务名不是VMnetAdapter或者NdisIP,并且IP地址不为空或者0.0.0.0时,这网卡就是真实物理网卡。开始时,美滋滋的,真的找出物理网卡了,后来越想越不对劲,要是这虚拟网卡不是VMWARE创建的虚拟网卡,那不就抓瞎了?经过强烈的大脑活动,有了以下的这份判断真实物理网卡的代码: Set MacAddressInfos = WMIService.ExecQuery("Select * from Win32_NetworkAdapter") 判断条件是在mac地址不为空的网卡中,如果PNPDeviceID中还有PCI字样并且网络连接状态是已连接上的网卡,那就是咱要找的真实物理网卡。经过威逼利诱,巧取豪夺,坑蒙拐骗在超过20台PC上的测试后,目前还没出现过差错。当然了,面对多个真实物理网卡的环境,加上第一份代码中的某些判断条件,会更加准确。 如果有同学认为有可能绕过这个判断的话,欢迎挑战,我会及时修正。 明天就是周末了,台风“鹦鹉”也要来了。如果我不被台风吹跑并且也不用考英语考试的话。。会给大家继续下一篇 《利用WMI打造完美“三无”后门-The Core》 |