有没有一种简单易用的方法,可以使用vb6、asp或jQuery来获取计算机名、主机名和ipv6 Is地址?原因是因为它是为了安全起见而记录信息。
发布于 2011-03-10 13:32:26
VB6不能像在.NET中那样直接在语言或运行库中执行此操作,但是,它有一个可通过COM访问的扩展管理界面。Windows Management Instrumentation (WMI)是一个基于COM的接口,用于执行各种管理工作。COM自动化在VB6中非常简单。
我建议看看微软的脚本编写人员http://technet.microsoft.com/en-us/scriptcenter/default所做的VBScripts。将VBScript移植到VB6应该是一个相对简单的方法。下面是执行您所需操作的VBScript:
http://gallery.technet.microsoft.com/scriptcenter/ff7bc830-a67d-434e-9c77-ebe1ff7d6a4d
我在这台机器上没有VB6来给你一个完美的代码示例,但是,只需将Wscript.Echo调用更改为Debug.Print,你就可以在VB6中运行它。
strcomputer = Inputbox("Name of Computer","Computer IP Query")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
n = 1
For Each objAdapter in colAdapters
Debug.Print "Network Adapter " & n
Debug.Print "================="
Debug.Print " Description: " & objAdapter.Description
Debug.Print " Physical (MAC) address: " & objAdapter.MACAddress
Debug.Print " Host name: " & objAdapter.DNSHostName
If Not IsNull(objAdapter.IPAddress) Then
For i = 0 To UBound(objAdapter.IPAddress)
Debug.Print " IP address: " & objAdapter.IPAddress(i)
Next
End If
If Not IsNull(objAdapter.IPSubnet) Then
For i = 0 To UBound(objAdapter.IPSubnet)
Debug.Print " Subnet: " & objAdapter.IPSubnet(i)
Next
End If
If Not IsNull(objAdapter.DefaultIPGateway) Then
For i = 0 To UBound(objAdapter.DefaultIPGateway)
Debug.Print " Default gateway: " & _
objAdapter.DefaultIPGateway(i)
Next
End If
Debug.Print
Debug.Print " DNS"
Debug.Print " ---"
Debug.Print " DNS servers in search order:"
If Not IsNull(objAdapter.DNSServerSearchOrder) Then
For i = 0 To UBound(objAdapter.DNSServerSearchOrder)
Debug.Print " " & objAdapter.DNSServerSearchOrder(i)
Next
End If
Debug.Print " DNS domain: " & objAdapter.DNSDomain
If Not IsNull(objAdapter.DNSDomainSuffixSearchOrder) Then
For i = 0 To UBound(objAdapter.DNSDomainSuffixSearchOrder)
Debug.Print " DNS suffix search list: " & _
objAdapter.DNSDomainSuffixSearchOrder(i)
Next
End If
Debug.Print
Debug.Print " DHCP"
Debug.Print " ----"
Debug.Print " DHCP enabled: " & objAdapter.DHCPEnabled
Debug.Print " DHCP server: " & objAdapter.DHCPServer
If Not IsNull(objAdapter.DHCPLeaseObtained) Then
utcLeaseObtained = objAdapter.DHCPLeaseObtained
strLeaseObtained = WMIDateStringToDate(utcLeaseObtained)
Else
strLeaseObtained = ""
End If
Debug.Print " DHCP lease obtained: " & strLeaseObtained
If Not IsNull(objAdapter.DHCPLeaseExpires) Then
utcLeaseExpires = objAdapter.DHCPLeaseExpires
strLeaseExpires = WMIDateStringToDate(utcLeaseExpires)
Else
strLeaseExpires = ""
End If
Debug.Print " DHCP lease expires: " & strLeaseExpires
Debug.Print
Debug.Print " WINS"
Debug.Print " ----"
Debug.Print " Primary WINS server: " & objAdapter.WINSPrimaryServer
Debug.Print " Secondary WINS server: " & objAdapter.WINSSecondaryServer
Debug.Print
n = n + 1
Next
Public Function WMIDateStringToDate(utcDate)
WMIDateStringToDate = CDate(Mid(utcDate, 5, 2) & "/" & _
Mid(utcDate, 7, 2) & "/" & _
Left(utcDate, 4) & " " & _
Mid (utcDate, 9, 2) & ":" & _
Mid(utcDate, 11, 2) & ":" & _
Mid(utcDate, 13, 2))
End Function https://stackoverflow.com/questions/5253938
复制相似问题