Validarea IP-urilor in PHP
Scris de Agkelos
Pentru a valida o adresa IP introdusa de utilizator sau preluata dintr-o sursa nesigura/vulnerabila se poate folosi functia de mai jos.
Functia foloseste ereg() pentru a imparti sir-ul dat ca parametru in parti distincte. Pentru certitudine se pot adauga in aceeasi functie si alte validari - pentru ca IP-ul sa nu fie localhost sau un IP neroutabil.
function valideazaIP($ip){
// Returneaza true daca e totul OK
// Returneaza false daca apare o problema (nu e valid IP-ul)
$ret = True;
if( !ereg(”^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$”,$ip,$regs) ){
$ret = False;
} else {
for( $i=1 ; $i< =4 ; $i++ ){
// Daca una din valori e mai mare de 255, se depaseste octetul alocat
// unei adrese IPv4
if( $regs[$i] > 255 ) $ret = False;
// Daca ultimul octet e 0, e adresa de retea nu IP
if( $regs[4] == 0 ) $ret = False;
}
}
return $ret;
}
// Returneaza true daca e totul OK
// Returneaza false daca apare o problema (nu e valid IP-ul)
$ret = True;
if( !ereg(”^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$”,$ip,$regs) ){
$ret = False;
} else {
for( $i=1 ; $i< =4 ; $i++ ){
// Daca una din valori e mai mare de 255, se depaseste octetul alocat
// unei adrese IPv4
if( $regs[$i] > 255 ) $ret = False;
// Daca ultimul octet e 0, e adresa de retea nu IP
if( $regs[4] == 0 ) $ret = False;
}
}
return $ret;
}
Categoria: PHP Snipets
