none
IP-Adressen vergleichen RRS feed

  • Frage

  • Hallo,

    ich möchte zwei Zahlen vergleichen. Die erste Zahl hat immer 3 Stellen zwischen den Punkten. Bei der zweiten Zahl wir eine 0 die an Anfang seht nicht angezeigt.

    Gibt es einen Weg diese Zahlen trotzdem zu vergleichen oder muss ich die Zahl anpassen damit ich sie vergleichen kann?

    Liebe grüße

    Norbert


    IT Berater


    Mittwoch, 17. Februar 2016 10:59

Antworten

  • Hallo,

    datentyp-technisch ist das keine Zahl, weil es mehr als einen Punkt enthält. Damit ist es ein String und du wirst ihn anpassen müssen. Mit dem folgenden, diesmal auch getestetem Code, entfernst du alle "0" hinter einem Punkt. Um mehrere Nullen zu illustrieren habe ich deine Zahlen etwas abgewandelt:

    $a = "192.168.178.001" 
    $b = "192.168.178.1"
    
    $a = $a -replace "(?<=\.)0+"
    $b = $b -replace "(?<=\.)0+"
    
    $a -eq $b
     

    Falls es nicht um Gleichheit, sondern um größer-kleiner geht, müsstet du es wahrscheinlich an den Punkten splitten und die Teile einzeln vergleichen.

    Viele Grüße

    Christoph

    • Als Antwort markiert NBC2009 Mittwoch, 17. Februar 2016 11:39
    Mittwoch, 17. Februar 2016 11:28

Alle Antworten

  • Hallo,

    datentyp-technisch ist das keine Zahl, weil es mehr als einen Punkt enthält. Damit ist es ein String und du wirst ihn anpassen müssen. Mit dem folgenden, diesmal auch getestetem Code, entfernst du alle "0" hinter einem Punkt. Um mehrere Nullen zu illustrieren habe ich deine Zahlen etwas abgewandelt:

    $a = "192.168.178.001" 
    $b = "192.168.178.1"
    
    $a = $a -replace "(?<=\.)0+"
    $b = $b -replace "(?<=\.)0+"
    
    $a -eq $b
     

    Falls es nicht um Gleichheit, sondern um größer-kleiner geht, müsstet du es wahrscheinlich an den Punkten splitten und die Teile einzeln vergleichen.

    Viele Grüße

    Christoph

    • Als Antwort markiert NBC2009 Mittwoch, 17. Februar 2016 11:39
    Mittwoch, 17. Februar 2016 11:28
  • Genau was ich gesucht habe. Vielen Dank

    IT Berater

    Mittwoch, 17. Februar 2016 11:40
  • [ipaddress]'192.168.178.1' -eq [ipaddress]'192.168.178.001'
    True
    
    [ipaddress]'192.168.178.2' -eq [ipaddress]'192.168.178.001'
    False

    Mit Regulären Ausdrücken kann man sehr viel machen, aber es ist nicht immer der optimale Weg:

    Regular Expressions: Now You Have Two Problems


    -Raimund


    Mittwoch, 17. Februar 2016 17:48
  • Hallo,

    bei führenden Nullen in IP-Adressen sollte man auch das Thema Octets nicht aus dem Auge verlieren, je nachdem was mit den IP's noch so anstellen will.

    Hier mal ein paar Ergebnisse zum nachdenken.

    ping 146.8.1.1 Ping wird ausgeführt für 146.8.1.1 mit 32 Bytes Daten: Antwort von 146.8.1.1: Bytes=32 Zeit=17ms TTL=122

    # Ergebnis wie erwartet ---- ping 146.010.1.1 Ping wird ausgeführt für 146.8.1.1 mit 32 Bytes Daten: Antwort von 146.8.1.1: Bytes=32 Zeit=17ms TTL=122

    # Hier wollten man den Rechner pingen der an der 2. Stelle die 10 hat aber der mit der 8 antwortet ---- ping 146.009.1.1 Ping-Anforderung konnte Host "146.009.1.1" nicht finden. Überprüfen Sie den Namen, und versuchen Sie es erneut.
    # Im Octal-System gibt es die Ziffer 9 nicht ---- ping 146.09.1.1 Ping-Anforderung konnte Host "146.09.1.1" nicht finden. Überprüfen Sie den Namen, und versuchen Sie es erneut.

    # Im Octal-System gibt es die Ziffer 9 nicht ---- Ping wird ausgeführt für 146.9.1.1 mit 32 Bytes Daten: Antwort von 146.9.1.1: Bytes=32 Zeit=15ms TTL=122

    # Treffer

    Da hat man dann schnell auch mal den falschen Server gestartet usw. :-)

    Beste Grüße
    brima

    Donnerstag, 18. Februar 2016 09:09
  • vielen Dank für deinen Beitrag.

    Ich nutze den ping "nur" dazu, um festzustellen, ob der PC im DNS gepflegt ist. Danach meine ich eine Gruppenabfrage gegen das AD. Im AD wurden die Gruppen immer 192.168.021 angelegt. Als Antwort auf mein Ping kommt aber 192.168.21 zurück.

    Daher reicht mir das ausblenden der nicht benötigten 0 um die Ordner vergleichen zu können.

    Liebe Grüße

    Norbert


    IT Berater

    Donnerstag, 18. Februar 2016 10:37