tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
1589
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Razortide Razortide ist offline Mitglied
    Registriert seit
    Dec 2006
    Beiträge
    11
    Ja, ich nochmal, also ich habe den Dos Befehl nslookup jetzt erfolgreich in einen String abgeschoben:

    Code :
    1
    2
    3
    
    Set objShell = CreateObject("WScript.Shell")
        Set objExec = objShell.Exec("CMD /c nslookup " & strName)
        strNslookupResult = LCase(objExec.StdOut.ReadAll)

    Die Ausgabe auf der Konsole sieht dann so aus (3 Möglichkeiten):

    Fall 1

    Server: --Nameserver--
    Address: --Nameserver IP--

    ***--Servername-- wurde von --Nameserver-- nicht gefunden: Non-existent domain
    Fall 2 (Regelfall)

    Server: --Nameserver--
    Address: --Nameserver IP--

    Name: --Servername--
    Address: --Server IP--
    Fall 3

    Server: --Nameserver--
    Address: --Nameserver IP--

    Name: --Servername--
    Address: --Server IP--
    Aliases: -Aliasname des Servers--
    So, ich möchte hierbei die --Server IP-- haben.

    Ich habs bereits über einen Split versucht
    Code :
    1
    
     vntResult = Split(strNslookupResult, "address:  ")

    Allerdings komme ich da zu unbefriedigenden Ergebnissen:

    Wenn ich in Fall 1 reinmarschiere bekomme ich einen kritischen Fehler; habe versucht es über
    Code :
    1
    2
    3
    
    If (vntResult(2) = Null) Then
        vntResult(2) = " "
        End If
    abzufangen, dass scheint allerdings so nicht zu gehen da er mir auch hier Fehler 9: Ausserhalb des gültigen Bereichs ausgibt.

    Bei Fall 2 gibt er mir zwar die IP aus, allerdings hat er dahinter zwei Zeilenumbrüche, die durch zwei Quadrate dargestellt werden, was auch nicht so toll ist.

    Fall 3 ist die Ausgabe:

    --IP des Servers--

    aliases: --Aliasname des Servers--

    Auch hier wieder die zwei Zeilenumbrüche am Ende, sowie ein Zeilenumbruch nach der IP.

    Ich möchte eigentlich -wenn vorhanden- nur die IP Adresse ausgegeben haben, ist dies nicht der Fall soll die Ausgabe ein leerer String sein.

    Ich hoffe mir kann jemand helfen, ich such hier schon seit ner ganzen Weile, komme aber leider auf keinen grünen Zweig
    Geändert von Razortide (04.12.06 um 15:16 Uhr)
     

  2. #2
    Avatar von Chamäleon
    Chamäleon Chamäleon ist offline Mitglied Silber
    Registriert seit
    Sep 2006
    Ort
    Unterfranken
    Beiträge
    51
    hab jetzt momentan kein VB zur Hand, aber wenn ich mich recht entsinne, mußt Du NULL über die Funktion isNULL() abfragen. In Deinem Falle

    If isNULL(vntResult(2)) Then vntResult(2) = " "
     
    Die Lösung für die größten Computer-Probleme: schalt ihn aus!

  3. #3
    Razortide Razortide ist offline Mitglied
    Registriert seit
    Dec 2006
    Beiträge
    11
    Nach einiger Recherche hab ich jetzt herausgefunden (ja, als Newbie ist man da stolz drauf )
    Das
    Code :
    1
    
    vntResult = Split(strNslookupResult, vbCrLf)

    Das Ganze in Zeilen splittet, was erstmal großartig ist, aber mein Verhängnis bleibt die Nullwert Überprüfung.

    Selbst wenn ich das Array vorher initialisiere:

    Code :
    1
    2
    3
    4
    
    For a = 0 To 5
        ReDim strResult(a)
        strResult(a) = ""
        Next

    Bekomm ich immer noch Laufzeitfehler 9
     

  4. #4
    Razortide Razortide ist offline Mitglied
    Registriert seit
    Dec 2006
    Beiträge
    11
    Ah, habs hinbekommen. Für den Fall das es nochmal jemand braucht:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    
    Rem =============================
    Rem == IP-Ermittlung           ==
    Rem =============================
     
    Sub Ip_Ermitteln()
      Dim strName                                As String
      Dim strNsl0okupResult                      As String
      Dim strResult()                            As String
      Dim i                                      As Integer
            
      i = 3
      
      Do While ActiveSheet.Cells(i, 2) <> ""
            
        Rem ========================================
        Rem == Name des Servers wird ausgelesen   ==
        Rem ========================================
        strName = ActiveSheet.Cells(i, 2).Value
                
        
        Rem ========================================
        Rem == Nslookup wird ausgelesen           ==
        Rem ========================================
        Set objShell = CreateObject("WScript.Shell")
        Set objExec = objShell.Exec("CMD /c nslookup " & strName)
        
        
        Rem ========================================
        Rem == Nslookup wird gesplittet           ==
        Rem ========================================
        strNslookupResult = LCase(objExec.StdOut.ReadAll)
        strResult = Split(strNslookupResult, vbCrLf)
           
           
        Rem ========================================
        Rem == Fallunterscheidung                 ==
        Rem ========================================
        If Not (UBound(strResult) < 4) Then
          If (UBound(Split(strResult(4), "address: ")) = 0) Then
            strResult = Split(strResult(4), "addresses: ")
            Else
            strResult = Split(strResult(4), "address: ")
          End If
               
          Else
          strResult(1) = ""
        End If
        
     
        Rem ========================================
        Rem == IP-Adresse wird geschrieben        ==
        Rem ========================================
     
        ActiveSheet.Cells(i, 6).Value = strResult(1)
        
        i = i + 1
      Loop
    End Sub
     

Ähnliche Themen

  1. NSLookup in C Programm durchführen!
    Von paddy_de im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 13.03.10, 16:37
  2. Splitten
    Von gd12 im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 13.11.08, 18:57
  3. DNS-Server Bind9 nslookup?
    Von Shooter2k im Forum Linux & Unix
    Antworten: 0
    Letzter Beitrag: 30.08.07, 17:01
  4. nslookup
    Von herbertthaler im Forum Internet, DSL & Flatrate
    Antworten: 7
    Letzter Beitrag: 18.01.05, 08:06
  5. nslookup unter php
    Von brÅinstorm im Forum PHP
    Antworten: 2
    Letzter Beitrag: 02.06.02, 15:15