|   Mailinglisten-Archive | 
Stefan Engelhardt wrote:
> 
> Ich will eine Ip-Adresse auf syntaktische Korrektheit überprüfen, also
> x.x.x.x, wobei x eben nur die Wert von 0 bis 255 annehmen darf.
> 
> Leider kenne ich mich mit regulärem Ausdrücken überhaupt nicht aus und habe
> im Moment auch nicht die Zeit, mich da einzuarbeiten. Kann mir jemand auf
> die Sprünge helfen und eine Zeile geben, die ich nur bei mir einbauen muß?
das mit einem regulaeren ausdruck zu machen, ist ziemlich umstaendlich,
der regulaere ausdruck fuer _eine_ zahl zwischen 0 und 255 wuerde in
etwa lauten:
/^0*[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4]$/
eleganter waere es imho, die ip mit dem . zu explodieren und zu schauen,
ob die daraus resultierenden strings zahlen zwischen 0 und 255 sind.
<?
function ip_gueltig ($ip) { 
  $explodiert=explode($ip,".");
  if (count($explodiert) != 4) { 
    /* anzahl der oktette schon flachs */
    return false;
  }
  while(list(,$x)=each($explodiert)) {
    if !(($x==(int)$x) || (($x >= 0) && ($x <= 255))) { 
      /* x ist nicht im bereich 0-255 oder $x ist kein integer*/
      return false;
    }
  }
  return true;
}
?>
so in etwa. jedoch ist dadurch eine ip noch lang nicht gueltig, denn
auch z.b. 0.0.0.0 oder 137.226.251.255 waeren hiermit gueltig.
gruss, markus
    php::bar PHP Wiki - Listenarchive