【发布时间】:2013-10-16 23:27:18
【问题描述】:
我正在使用 VBScript 通过 Win32_PingStatus 检索远程计算机的地址,如下所示:
dnsServer = "myComputerName"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
colIpQuery = "Select * from Win32_PingStatus where Address='" + dnsServer + "' AND ResolveAddressNames=TRUE"
Set colIPAddrs = objWMIService.ExecQuery(colIpQuery)
For Each colIPAddr In colIPAddrs
If CStr(colIpAddr.StatusCode) = 0 Then
dnsServerIp = colIpAddr.ProtocolAddress
End If
Next
这里的问题是,如果“myComputerName”正在运行 IPv6,colIpAddr.ProtocolAddress 将始终只返回 IPv6 地址,但我需要 IPv4 地址。我无法禁用 IPv6、跳过 IPv6 地址等。有没有其他方法可以在不使用外部方法(ping、powershell 等)的情况下检索 IPv4 地址?
【问题讨论】:
-
VBScript 在没有外部工具的情况下无法做到这一点。我建议切换到 PowerShell。
-
那很不幸 :( 感谢您确认我认为可能的情况。