WMI 获取所有物理网卡信息.目前只能获取已连接的.

lucifercxw 2019-12-23 04:57:40

Dim searcher As New System.Management.ManagementObjectSearcher("select * from win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
Dim moc2 As System.Management.ManagementObjectCollection = searcher.Get()

For Each mo As System.Management.ManagementObject In moc2
Dim pde As System.Management.PropertyDataCollection.PropertyDataEnumerator = mo.Properties.GetEnumerator()


If mo("IPEnabled") Then
netid = mo("MACAddress")
ip = mo("IpAddress")(0)
mactp = mo("Description")
'Exit For
If mactp.Contains("PCI") Then
mactp = "有线网卡:"
ElseIf mactp.Contains("Wi") Then
mactp = "无线网卡:"
End If

mac += mactp & " " & netid & " "

End If

Next

只有网卡开启的时候可以获取,禁用的网卡就没有办法获取.

...全文
748 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
轻鸿万里 2020-03-18
  • 打赏
  • 举报
回复
查询注册表就知道了。
xyhello 2020-03-15
  • 打赏
  • 举报
回复
我以前试过要读取被禁用的网卡的mac,不管是读取注册表 或查wmi还是读api, 基本上中英文的资料都找了,可以确定无法实现
良朋 2020-02-17
  • 打赏
  • 举报
回复
哈哈,3楼看的真仔细。
irix2008 2020-02-16
  • 打赏
  • 举报
回复
可以通过访问注册表来获得禁用或未连接的物理网卡地址
wq1282 2020-02-16
  • 打赏
  • 举报
回复
Dim searcher As New System.Management.ManagementObjectSearcher("select * from win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
Dim moc2 As System.Management.ManagementObjectCollection = searcher.Get()

For Each mo As System.Management.ManagementObject In moc2
Dim pde As System.Management.PropertyDataCollection.PropertyDataEnumerator = mo.Properties.GetEnumerator()


If mo("IPEnabled") Then
netid = mo("MACAddress")
ip = mo("IpAddress")(0)
mactp = mo("Description")
'Exit For
If mactp.Contains("PCI") Then
mactp = "有线网卡:"
ElseIf mactp.Contains("Wi") Then
mactp = "无线网卡:"
End If

mac += mactp & " " & netid & " "

End If

Next

删除红色部分
清晨曦月 元老 2019-12-30
  • 打赏
  • 举报
回复
WMI可以被欺骗。

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧