[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]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-5 13:47 编辑
  1. Set wmiService = GetObject("winmgmts:\\.\root\cimv2")
  2. Set Items = wmiService.ExecQuery("Select * From Win32_NetworkAdapter")
  3. s=""
  4. For Each objItem in Items
  5.     If LCase(Left(objItem.PNPDeviceID, 4))="pci\" Then
  6.         Set Its = wmiService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration where Caption='"& objItem.Caption &"'")
  7.         For Each It in Its
  8.             If not IsNull(It.MACAddress) Then
  9.                 n=n+1
  10.                 s=s&"网卡"& n &":"&vbCrLf _
  11.                     &"网卡名称:"& It.Caption &vbCrLf _
  12.                     &"物理地址:"& It.MACAddress &vbCrLf&vbCrLf
  13.                 If not IsNull(It.IPAddress) Then
  14.                     s=left(s,len(s)-2)&"IPv4地址:"& It.IPAddress(0) _
  15.                         & vbCrLf &"IPv6地址:"& It.IPAddress(1) &vbCrLf&vbCrLf
  16.                 End If
  17.             End If
  18.         Next
  19.     End If
  20. Next
  21. msgbox s
复制代码
1

评分人数

    • doswork: 多谢! 感觉版主技术很强的~技术 + 1

TOP

回复 2# pcl_test


    多谢版主回复!

    这个代码太强大了,直接出来11个网卡设备,包括虚拟网卡的,之前从来没见过……      

    能不能再做筛选:只筛选出实际物理网卡(现有是两个),我想将这两个网卡信息加入上次那个“本机简易信息”里面,再次感谢!

TOP

回复 3# doswork

已修改

TOP

回复 4# pcl_test


    非常感谢!这个很实用!

TOP

回复 4# pcl_test


    版主能不能再区分下IP V4、IP V6 分两行显示? 现在默认只有IPV4的,多谢!

TOP

本帖最后由 pcl_test 于 2016-7-5 13:51 编辑

回复 6# doswork

最后一次改
1

评分人数

TOP

回复 7# pcl_test


    版主,WIN10获取不到?

TOP

返回列表