IP et subnetmask

3 réponses
AuteurMessage

Rano |
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 26/07/2010 à 16:18

Bonjour,

Je cherche un script PHP ou soft linux a qui on fournit deux ips, genre : a.b.c.d et w.x.y.z et qui renverrai quelque chose du style :
a.b.c.d/n qui prendrait en compte toutes les ips entre a.b.c.d et w.x.y.z

Le but étant de pouvoir filtrer des lots d'IPS dont je connais la première et la dernière.

Si vous avez une idée pour faire ça, je suis preneur

Merci

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 26/07/2010 à 16:27

Hello,

pour faire l'inverse, si ça peut t'aider :

    $tmp = explode('/', $mask);
$ip = ip2long($tmp[0]);

$mask = (int) $tmp[1];

$dip = str_pad(decbin($ip), 32, '0', STR_PAD_LEFT);
$minIP = $dip;
$maxIP = $dip;

for($i = $mask + 1; $i <= 32 ; $i++){
$minIP{$i-1} = '0';
$maxIP{$i-1} = '1';
}
$minIP = bindec($minIP);
$maxIP = bindec($maxIP);

$list = array();
for( $ip = $minIP; $ip <= $maxIP; $ip++ )
$list[$ip] = long2ip($ip);


J'utilise ça en CLI, donc je ne me suis pas non plus posé la question des perfs...

A noter que sur mon desktop j'utilise "ipcalc", qui fait peut-être ce que tu veux.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 26/07/2010 à 17:09

Merci, j'ai fait le système à l'envers et il semblerait que ça fonctionne


$ipstart = '188.115.128.0';
$ipend = '188.115.191.255';
$maxip = decbin(ip2long($ipend));
$minip = decbin(ip2long($ipstart));

echo $minip . "\n";
echo $maxip . "\n";

$mask = 0;
for ($mask = 0; $mask <= 32; $mask++)
{
if ($minip{$mask} != $maxip{$mask})
break;
}
echo $ipstart . "/" . $mask . "\n";

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 26/07/2010 à 18:17

Juste pour information, il manque le str_pad dans les $maxip et $minip

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 22:16:16 | Généré en 5.14ms | Contacts | Mentions légales |