2011-03-10 2 views
0

vb6, asp 또는 jQuery를 사용하여 컴퓨터 이름, 호스트 이름 및 ipv6 ipaddress를 쉽게 가져올 수 있습니까? 그 이유는 보안을위한 로깅 정보 때문입니다.asp 또는 vb6을 사용하여 호스트 이름, 컴퓨터 이름 및 ipv6을 검색하는 간단한 방법을 찾으십시오.

+0

영원히는 아니더라도 오랜 시간 동안 동일하게 유지되므로 코드가 실행중인 컴퓨터에 대해 이러한 사항을 기록하는 것이 이상하게 보일 수 있습니다. 일부 원격 시스템에서 이들을 검색하려고합니까? – Bob77

답변

1

VB6에는 .NET에서와 같이 언어 나 런타임에서 직접이 작업을 수행 할 수있는 방법이 없지만 Windows에는 COM을 통해 액세스 할 수있는 광범위한 관리 인터페이스가 있습니다. WMI (Windows Management Instrumentation)는 모든 종류의 관리 작업을 수행하기위한 COM 기반 인터페이스입니다. VB6에서는 COM 자동화가 매우 간단합니다.

나는 Microsoft Scripting Guys가 작성한 VBScript를보고 싶습니다 (http://technet.microsoft.com/en-us/scriptcenter/default). VBScript를 VB6에 이식하는 것은 비교적 간단합니다. 내가 지금 당신에게 완벽한 코드 예제를 얻기 위해이 컴퓨터에 VB6이없는
http://gallery.technet.microsoft.com/scriptcenter/ff7bc830-a67d-434e-9c77-ebe1ff7d6a4d

그러나, 단순히 Wscript.Echo 당신을 Debug.Print 호출을 변경 : 여기 VBScript를 당신이 원하는 않는다는 것입니다 거의 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 
+1

마지막으로,이 VBScript 코드를 앱에 붙여 넣는 것을 권장하지 않습니다. 여기서는 WMI COM 자동화로 수행 할 수있는 작업에 대한 데모로만 설명합니다. 앱에 올바르게 선언 된 변수, 오류 처리 및 모든 좋은 점이 있어야합니다. –

+1

또한 주어진 시스템에서 WMI가 설치되거나 실행되지 않을 수도 있습니다. – Bob77