需求:如题,获取系统IPv4地址的Mac 地址,并输出到一个文件中 (多网卡环境)。(摘自我在CSDN回答的问题)

步骤:

  1. 直接从环境变量中取计算机名、当前用户名(类似地,用这个方法还可以获取环境变量里其它变量,如:HOMEDRIVE、HOMEPATH、NUMBER_OF_PROCESSORS、WINDIR等,环境变量列表和详情可以在命令提示符里输入 set命令查看,或者计算机属性的高级系统设置里查看和修改);
  2. 通过wmi获取激活状态的网络适配器对象后,读取IPAddress、Description、MACAddress,其中网络适配器的IPAddress属性是一个字符串数组,包含了网卡所有的IPv4以及IPv6地址,可以按实际需求取第一个或者。
Set objWMIService = GetObject("winmgmts://./root/cimv2")
'通过wmi获取激活状态的网络适配器对象后,读取IPAddress、Description、MACAddress
Set adapters = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Set wshell = Wscript.CreateObject("Wscript.Shell")

'直接从环境变量里取计算机名、当前用户名
result ="HOSTNAME: 【" & wshell.ExpandEnvironmentStrings("%COMPUTERNAME%") & _ 
        "】" & vbcrlf & "USER: 【" & wshell.ExpandEnvironmentStrings("%USERNAME%") & "】"

For Each adapter in adapters
  With adapter
    result = result & vbcrlf & vbcrlf & .Description & ":" & _ 
            vbcrlf & "MAC:【" & .MACAddress & "】" & vbcrlf & "IP:【" &  join(.IPAddress, ", ") & "】"
  End With
Next

'Set fso = CreateObject("scripting.filesystemobject")
'Set f=fso.CreateTextFile( "d:\adapters.txt",2,ture)
'f.writeline result

msgbox result
分类: articles