'============================
'函数名称: GetNICInfo
'功能描述: 返回由指定分隔符分隔的未被禁用的网卡mac地址或IP地址,具体的返回内容由Index参数确定。
'输入参数: Index 必需的,要返回的信息(0返回MAC地址,1返回IPV4地址,2返回IPV6地址。
' Delimiter 可选的,存在多个网卡(可能是物理的或虚拟的)时,返回信息的分隔字符
'返回参数: 返回所有被启用网卡的信息(如果有多个网卡,则由指定分隔符分隔)
' 没有网卡或网卡全部被禁用时返回空字符串("")
'使用示例: =GetNICInfo(1) '返回示例:192.168.1.100
'相关调用:
'使用注意:
'兼 容 性: 使用
win32.NETworkAdapterConfiguration类实现,XP和Win7操作系统测试通过
'参考资料:
'作 者: 红尘如烟
'创建日期: 2010-8-7
'============================
Public Function GetNICInfo(ByVal Index As Integer, Optional ByVal Delimiter As String = vbCrLf) As String
On Error GoTo ErrorHandler
Dim objWMIService As Object
Dim objItems As Object
Dim objItem As Object
Dim strTemp As String
Set objWMIService = GetObject("winmgmts:\.rootcimv2")
strTemp = "Select * FROM
win32_NetworkAdapterConfiguration Where IPEnabled=True"
Set objItems = objWMIService.ExecQuery(strTemp)
strTemp = ""
For Each objItem In objItems
Select Case Index
Case 0 'MAC地址
strTemp = objItem.MACAddress
Case 1 'IPV4地址
strTemp = objItem.IPAddress(0)
Case 2 'IPV6地址
strTemp = objItem.IPAddress(1)
End Select
If GetNICInfo <> "" And strTemp <> "" Then GetNICInfo = GetNICInfo & Delimiter
GetNICInfo = GetNICInfo & strTemp
Next
ExitHere:
Set objWMIService = Nothing
Set objItems = Nothing
Set objItem = Nothing
Exit Function
ErrorHandler:
' MsgBox Err.Description, vbCritical, "Error"
Resume ExitHere
End Function
演 示:
源码示例下载: