Ищете простой способ получить имя хоста, имя компьютера и ipv6, используя asp или vb6 - PullRequest
0 голосов
/ 10 марта 2011

Существует ли простой в использовании простой способ получения имени компьютера, имени хоста и ipaddress ipv6 с помощью vb6, asp или jQuery?Причина в том, что для регистрации информации в целях безопасности.

1 Ответ

1 голос
/ 10 марта 2011

VB6 не имеет способа сделать это непосредственно на языке или во время выполнения, как это было бы в .NET, однако Windows имеет расширенный интерфейс управления, доступ к которому можно получить через COM. Инструментарий управления Windows (WMI) - это интерфейс на основе COM для всех видов управления. Автоматизация COM невероятно проста в VB6.

Я бы посоветовал взглянуть на сценарии VBS, сделанные сценаристами Microsoft, 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 
...