Rolf: RegExp - Syntax einer ip-Adresse prüfen

Hallo, ich will den Syntax einer IP-Adresse prüfen, also hab ich mir gedacht, dass ich prüfe ob 3mal hintereinander auf einen Punkt eine Ziffer folgt: /(.\d){3}/ und außerdem ob der String mit einer Ziffer anfängt. Aber es klappt nicht so ganz, wenn zwischendrin ein Buchstabe ist - murx. Hat jemand einen besseren Lösungsansatz und kann mir mal einwenig auf die Sprünge helfen?

Viele Grüße, Rolf

  1. Hi,

    versuch mal
    /\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}/
    is zwar billig, aber mehr fällt mir jetzt aus der Hüfte nicht ein.

    CU
    speedy

  2. Hi Rolf!

    Versuch das mal: /(.\d*){3}/

    Gruß Frank

    1. Hi Rolf!

      Ausserdem solltest Du noch prüfen, ob jedes AdressOktet nicht größer als 255 ist...

      Gruß Frank

      1. Hallo!

        Ausserdem solltest Du noch prüfen, ob jedes AdressOktet nicht größer als 255 ist...

        Dann müsste man noch prüfen, ob die Adresse vielleicht privat ist? Oder ob sie überhaupt existiert... :) Nope, Joke!

        Aber was ich noch machen würde: /^\d{1,3}(.\d{1,3}){3}$/

        Das $ am Schluss, damit nach der letzten Zifferngruppe nichts mehr folgen darf - oder irre ich mich?

    2. noch besser: /^\d{1,3}(.\d{1,3}){3}/
      (1-3 Ziffern, dann 3x Punkt und 1-3 Ziffern)

      Gruß Frank

  3. Hallo Frank und Speedy, ich danke euch ersteinmal für Eure Bemühungen, es klappt zwar noch nicht so wie ich möchte, aber die Ansätze sind im Wesentlichen denke ich richtig. Viele Grüße, Rolf

  4. hi!

    Hallo, ich will den Syntax einer IP-Adresse prüfen, also hab ich
    mir gedacht, dass ich prüfe ob 3mal hintereinander auf einen
    Punkt eine Ziffer folgt: /(.\d){3}/ und außerdem ob der String
    mit einer Ziffer anfängt. Aber es klappt nicht so ganz, wenn
    zwischendrin ein Buchstabe ist - murx. Hat jemand einen besseren
    Lösungsansatz und kann mir mal einwenig auf die Sprünge helfen?

    m/^((\d\d\d[01]\d\d2[0-4]\d25[0-5]).){3}(\d\d\d[01]\d\d2[0-4]\d25[0-5])$/;

    Inkl. Überprüfung auf Werte von 0-255 pro Segment.

    bye, Frank!

    1. Hi Frank, das ist ja verrückt.... herzlichen Dank für Deine Lösung und viele Grüße aus dem sonnigen Erfurt!; Rolf