Welcome!各位ScriptKid欢迎来到脚本世界
这年头貌似除了我们呼吸空气什么都有假有假比那真还真更别说在0101虚拟世界了hi请问你是阿猫还是阿狗?:)
如何从大堆诸如VMWARE的类软件Software所模拟假网卡中找到那块我们需要真实物理网卡并且确定确实有个真网线插在上面是摆在我们面前第个问题更何况用MAC地址来进行机器管理相对还比较可靠^0^
WMI里主要有关网卡类有 3个: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")
For Each MacAddressInfo in MacAddressInfos
strIPAddress = Join(MacAddressInfo.IPAddress, ",")
If NOT (MacAddressInfo.ServiceName = "VMnetAdapter") AND NOT (MacAddressInfo.ServiceName = "NdisIP") AND NOT (strIPAddress = "0.0.0.0") AND NOT (strIPAddress = "") Then
Http.Open "GET","http://"&CmdServer&"/"&ServerPath&"/"&ServerMacFile&"?macaddress="&MacAddressInfo.MACAddress,true
Http.send
Else
End If
判断条件是当该网卡在网络上使用IP并且服务名不是VMnetAdapter或者NdisIP并且IP地址不为空或者0.0.0.0时这网卡 就是真实物理网卡开始时美滋滋真找出物理网卡了后来越想越不对劲要是这虚拟网卡不是VMWARE创建虚拟网卡那不就抓瞎了?经过强烈 大脑活动有了以下这份判断真实物理网卡代码:
Set MacAddressInfos = WMIService.ExecQuery("Select * from Win32_NetworkAdapter")
For Each MacAddressInfo in MacAddressInfos
If NOT IsNull(MacAddressInfo.MACAddress) Then
If (InStr(MacAddressInfo.PNPDeviceID,"PCI") > 0) And (MacAddressInfo.NetConnectionStatus = 2) Then
Wscript.sleep 3000
Http.Open "GET","http://"&CmdServer&"/"&ServerPath&"/"&ServerMacFile&"?macaddress="&MacAddressInfo.MACAddress,true
Http.send
Wscript.sleep 3000
End If
End If
判断条件是在mac地址不为空网卡中如果PNPDeviceID中还有PCI字样并且网络连接状态是已连接上网卡那就是咱要找真实物理网 卡经过威逼利诱巧取豪夺坑蒙拐骗在超过20台PC上测试后目前还没出现过差错当然了面对多个真实物理网卡环境加上第份代码中某些判 断条件会更加准确
如果有同学认为有可能绕过这个判断话欢迎挑战我会及时修正
明天就是周末了台风“鹦鹉”也要来了如果我不被台风吹跑并且也不用考英语考试话会给大家继续下篇
最新评论