DiamondDogHamm: Problem mit preg_match

Beitrag lesen

Nein, ist es nicht.

Stimmt, weil ich dort ein nicht vergessen habe :) sorry

»»Zum einen ist die Verwendung von mysql_real_escape_string() an der Stelle sinnfrei. Und die anderen drei Dinge sind schon angesprochen worden. Einfacher als einen korrekten RegExp zu finden wäre, die Adresse zu zerlegen und ihre Bestandteile einzeln zu prüfen.

Mit dem zerlegen ist ein guter Tip, ich maches jetzt wie so:

  
$ip_port = explode(":", $_POST['Proxy']);  
		  
$ip_arr = explode('.',$ip_port[0]);  
$port = $ip_port[1];  
  
if ($ip_arr[0]<=255 && $ip_arr[1]<=255 && $ip_arr[2]<=255 && $ip_arr[3]<=255 && count($ip_arr) <= 4 &&  
is_numeric($ip_arr[0]) && is_numeric($ip_arr[1]) && is_numeric($ip_arr[2]) && is_numeric($ip_arr[3]) &&									  
is_numeric($port) && $port <= 9999 &&  
preg_match("!^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$!",$ip_port[0])) {  
		  
  echo "IP ok!";		  
}else{ 	  
  echo "IP fehlerhaft!";  
}  

bis jetzt kann ich keinen Fehler finden, wer doch noch einen Verbesserungsvorschlag hat, bitte bescheid geben.