是否有一個簡單易用的方法來拉動計算機名稱,主機名和ipv6 ipaddress使用vb6,asp或jQuery?原因是因爲它爲了安全而記錄信息。尋找一種簡單的方法來檢索主機名,計算機名稱和ipv6使用asp或vb6
回答
VB6沒有像在.NET中那樣直接在語言或運行時執行此操作的方法,但是Windows具有可通過COM訪問的廣泛管理界面。 Windows Management Instrumentation(WMI)是一個基於COM的界面,用於執行各種管理任務。在VB6中,COM自動化非常簡單。
我會建議看看由Microsoft腳本專家完成的VBScripts,http://technet.microsoft.com/en-us/scriptcenter/default。將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
最後一件事,我不會推薦在你的應用中粘貼這個VBScript代碼。我只是把它作爲一個演示,說明你可以用WMI COM自動化做什麼。你的應用程序應該正確地聲明變量,錯誤處理和所有好東西。 – 2011-03-10 05:37:30
還要考慮WMI可能沒有安裝或運行在給定的系統上。 – Bob77 2011-03-10 16:58:02
- 1. 檢索計算機名稱
- 2. 驗證IPv4,IPv6和主機名稱
- 3. Windows中的主機名和計算機名稱。?
- 4. 來自計算機名稱的Microsoft Exchange Server主機地址
- 5. vb6從本地主機或遠程IP地址檢索IPV6
- 6. IPv6地址(按主機名稱)
- 7. 尋找搜索算法名稱
- 8. 如何使用Inno pascal腳本檢索計算機名稱?
- 9. Java服務器客戶端和主機名稱計算機
- 10. 從webservice中檢索客戶端用戶名和計算機名
- 11. 如何查找網絡計算機名稱和用戶登錄該計算機?
- 12. 主機名-f主機名:名稱或服務未知
- 13. BIND - 主機名稱檢查
- 14. 使用preg_match檢查主機名稱
- 15. 更改計算機名稱
- 16. 使用本地主機,127.0.0.1,計算機名稱和靜態IP的差異
- 17. 使用主機名稱在本地計算機上無法訪問ELMAH文件
- 18. 如何知道計算機的「遠程主機的DNS名稱」?
- 19. 在Windows中檢索登錄用戶的名稱和主機名稱
- 20. 檢索ISP主機名
- 21. 如何獲取計算機名稱(在Web應用程序中的主機名)?
- 22. 從SharePoint 2007中的AD中檢索計算機名稱
- 23. powershell:如何檢索dns格式的計算機名稱
- 24. 檢索通過AD登錄的計算機名稱admin帳戶
- 25. 尋找正則表達式/代碼主機名/機器名稱驗證
- 26. 查找下一個可用的計算機名稱
- 27. 如何使用PHP獲取計算機名稱,計算機的本地IP和計算機的服務器IP
- 28. 使用PowerShell自動命名計算機獲取主機名和MDT
- 29. 使用`GetUserNameEx`獲取計算機主體名稱
- 30. 尋找一種方法來計算openrefine中的時間流逝
將代碼運行的計算機記錄下來看起來很奇怪,因爲如果不是永久性的,它們將長期保持不變。你是否試圖從一些遠程系統檢索這些? – Bob77 2011-03-10 16:59:04