Ik wil een check maken om IP adressen als 10.0*.*, 127.0.*.* en 192.168.*.* te filteren. Ik vond op Internet ...

<?php
preg_match("/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/", $row['ip'])
?>

en denk dat het met de preg_match moet kunnen. Maar ik snap niks van deze functie. Wie kan mij opweg helpen?
[php]preg_match[/php] hier vind je heel wat uitleg ;)

De functie geeft true zodra de string overeenkomt met je regex.

Ander voorbeeldje hoe je ze zou kunnen filteren:

<?php
$ip = "127.0.0.1";

$filterIP[] = "10.0";
$filterIP[] = "127.0";
$filterIP[] = "192.168";

$aIP = explode(".", $ip);
$vergelijkIP = $aIP[0].".".$aIP[1];

if( in_array($vergelijkIP, $filterIP) )
{
// IP moet gefilterd worden
}
else
{
// IP niet gefilterd worden
}
?>
<?php
if( preg_match('/^(?:10\.0|127\.0|192.168)\.\d+\.\d+$/', $ip) )
{
echo 'gematched!';
}
?>

Niet getest maar zou moeten werken.

Reageren