标题: [问题求助] [已解决]VBS如何获取多网卡的网卡设备名称、IP地址、MAC地址? [打印本页]
作者: doswork 时间: 2016-7-4 15:19 标题: [已解决]VBS如何获取多网卡的网卡设备名称、IP地址、MAC地址?
本帖最后由 doswork 于 2016-7-4 22:18 编辑
现在双网卡环境也比较多,不知道能不能通过VBS实现:识别并输出双网卡的设备名称、IP、MAC的详细数值?
希望效果是:当只有一个网卡连接时,识别的是本连接的3个参数,另一个未连接的设备名称、MAC地址参数(没有连接就没有IP信息);都连接时输出6个参数(各3个)
网上基本都是单网卡的识别,有一个双网卡/多网卡识别的,但运行也只是IP实现识别,MAC显示是两个相同的……
(附原文地址:http://slzyer.blog.51cto.com/692866/1590024/)
也有思路通过“ipconfig /all ”输出到文本来提取,但是几个参数都是一样,就不知道怎么来提取了,这种方式是最准确的。
作者: pcl_test 时间: 2016-7-4 16:49
本帖最后由 pcl_test 于 2016-7-5 13:47 编辑
- Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
- Set Items = wmiService.ExecQuery("Select * From Win32_NetworkAdapter")
- s=""
- For Each objItem in Items
- If LCase(Left(objItem.PNPDeviceID, 4))="pci\" Then
- Set Its = wmiService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration where Caption='"& objItem.Caption &"'")
- For Each It in Its
- If not IsNull(It.MACAddress) Then
- n=n+1
- s=s&"网卡"& n &":"&vbCrLf _
- &"网卡名称:"& It.Caption &vbCrLf _
- &"物理地址:"& It.MACAddress &vbCrLf&vbCrLf
- If not IsNull(It.IPAddress) Then
- s=left(s,len(s)-2)&"IPv4地址:"& It.IPAddress(0) _
- & vbCrLf &"IPv6地址:"& It.IPAddress(1) &vbCrLf&vbCrLf
- End If
- End If
- Next
- End If
- Next
- msgbox s
复制代码
作者: doswork 时间: 2016-7-4 21:01
回复 2# pcl_test
多谢版主回复!
这个代码太强大了,直接出来11个网卡设备,包括虚拟网卡的,之前从来没见过……
能不能再做筛选:只筛选出实际物理网卡(现有是两个),我想将这两个网卡信息加入上次那个“本机简易信息”里面,再次感谢!
作者: pcl_test 时间: 2016-7-4 21:58
回复 3# doswork
已修改
作者: doswork 时间: 2016-7-4 22:15
回复 4# pcl_test
非常感谢!这个很实用!
作者: doswork 时间: 2016-7-5 12:09
回复 4# pcl_test
版主能不能再区分下IP V4、IP V6 分两行显示? 现在默认只有IPV4的,多谢!
作者: pcl_test 时间: 2016-7-5 13:48
本帖最后由 pcl_test 于 2016-7-5 13:51 编辑
回复 6# doswork
最后一次改
作者: Speed乄Jay 时间: 2017-12-4 15:25
回复 7# pcl_test
版主,WIN10获取不到?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |