VERIFICATION D'UNE IP DANS UNE PLAGE

Utilisateur anonyme - 31 janv. 2009 à 10:30
DAM74 Messages postés 10 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 15 janvier 2010 - 13 janv. 2010 à 15:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49120-verification-d-une-ip-dans-une-plage

DAM74 Messages postés 10 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 15 janvier 2010
13 janv. 2010 à 15:53
super comme idée !!!!
cherifnet2002 Messages postés 6 Date d'inscription mardi 24 mai 2005 Statut Membre Dernière intervention 11 février 2009
6 févr. 2009 à 23:13
Bonjour à tous !
Nous avons écrit une nouvelle version de cette fonction
basée sur une approche plus "arithmétique", plus condensée et qui teste la pertinence des adresses
fournies en paramètres à la fonction .
Ce code peut encore etre amélioré.
Vous retrouverez ce code en suivant cette adresse :
http://www.phpcs.com/codes/VERIFICATION-ADRESSE-IP_49200.aspx
cs_New_World Messages postés 53 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 15 juillet 2010
2 févr. 2009 à 11:05
bonjour tous le monde,
winwarrior ton code marche super bien merci pour cette idée je connaissais pas cette fonction coool ;) je me suis cassé la téte avec l'algo de ma methode j'ai essayé de faire tous les cas alors que la tienne est bcp plus agreable encore merci ;)
cs_New_World Messages postés 53 Date d'inscription mardi 15 août 2006 Statut Membre Dernière intervention 15 juillet 2010
1 févr. 2009 à 23:58
bonsoir tous le monde,
mercii deja pour vos comment ca me fais plaisir de savoir qu'il ya d'autres personne qui peuvent s'en servir.b sa vous fais gagner deja le temps que j'ai perdu (1/2 journée :))
je reponderait a la question de si'il on met pas le point b j'ai laisser ca pr que ca sois valider apart ce code suppose que les IP sont valide ;)
et je veux repondre a <winwarrior> et lui dire mercii pour ton code je connaissais pas la fonction b mnt il fais soir j 'essayerai de le tester demain j'espere que ca marche merci encore
@VOUS
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
1 févr. 2009 à 12:27
Salut,

Une comparaison entre deux termes renvoit TOUJOURS un booléen (true ou false).
Donc histoire d'alléger le code et le rendre plus digeste, on peut remplacer :
if ($x4_ip < $x4_p2){
//echo "4";
return true;
}else{
//echo "5";
return false;
}

par :

return ($x4_ip < $x4_p2);

C'est plus court, c'est plus facile à lire et ça fait la même chose ^^
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
31 janv. 2009 à 15:26
Salut,
Tu peux utiliser ip2long pour faire ce genre de comparaison, voici un exemple de code:

function in_plage($sIp1, $sIp2, $sIp) { if (($iIp1 ip2long($sIp1)) false) return false; if (($iIp2 ip2long($sIp2)) false) return false; if (($iIp ip2long($sIp)) false) return false;
return (($iIp >= $iIp1) && ($iIp <= $iIp2));
}
Palleas_44 Messages postés 130 Date d'inscription lundi 12 décembre 2005 Statut Membre Dernière intervention 19 avril 2009
31 janv. 2009 à 15:00
- Moi j'aurais utilisé un petit coup de filter pour valider le format avant
- plutot que des if(condition) return true; else return false; => return condition (la tu gagnes 10 lignes)
- pour le reste, j'sais pas, sans avoir la solution j'me dis que tu te prends trop la tête (j'aurais utilisé une regexp je pense)
- pense à mettre des commentaires, la on ne comprend rien
TheSin Messages postés 331 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 10 février 2009
31 janv. 2009 à 11:12
J'aimerais juste signaler qu'il manque une vérification du format de l'IP (que se passe-t-il si on omet les '.' ou si on veut autre chose ? ;)).
Bref, ptite gestion d'erreur (exception par exemple) ca serait encore mieux ;) (et préciser peut-être aussi que c'est de l'IPv4 aussi ?).
Utilisateur anonyme
31 janv. 2009 à 10:30
Merci pour ce code :-) il marche parfaitement
Rejoignez-nous