Verification d'une ip dans une plage

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 807 fois - Téléchargée 16 fois

Contenu du snippet

bonjour tous le monde,
voila c un bout de code qui permet de savoir si une IP apparttient a une plage d'adresse j'espere que ca peux aider des uns c'est trés utile comme fonction n'hesiter surtout pas a tester tous les cas j'attendrai vos retour ;=)

@VOUS FROM SALAH E

Source / Exemple :


<?php 
function in_plage($plage_1,$plage_2,$ip){
	
	list($x1_p1, $x2_p1, $x3_p1, $x4_p1) = explode(".", $plage_1);
	list($x1_p2, $x2_p2, $x3_p2, $x4_p2) = explode(".", $plage_2);
	list($x1_ip, $x2_ip, $x3_ip, $x4_ip) = explode(".", $ip);

	if ($x1_ip == $x1_p1 && $x2_ip == $x2_p1 && $x3_ip == $x3_p1 && $x1_ip == $x1_p2 && $x2_ip == $x2_p2 && $x3_ip == $x3_p2){
		
		if ($x4_ip > $x4_p1 && $x4_ip < $x4_p2){
			return true;
		}else{
			return false;
		}
	}else if($x1_ip == $x1_p1 && $x2_ip == $x2_p1 && $x3_ip == $x3_p1){
	    if ($x4_ip > $x4_p1 && $x4_ip < $x4_p2){
			return true;
		}else{
			return false;
		}
	}else if ($x1_ip >= $x1_p1 && $x1_ip < $x1_p2){
		//echo "1";
		return true;
		
	}else if ($x1_ip == $x1_p2){
		
		if ($x2_ip >= $x2_p1 && $x2_ip < $x2_p2){
			//echo "2";	
			return true;
			
		}else if ($x2_ip == $x2_p2){
			
			if ($x3_ip >= $x3_p1 && $x3_ip < $x3_p2){
				//echo "3";
				return true;
				
			}else if ($x3_ip == $x3_p2){
				
				if ($x4_ip < $x4_p2){
					//echo "4";
					return true;
				}else{
					//echo "5";
					return false;
				}
				
			}else{
				//echo "6";
				return false;
			}
		}else{
			//echo "7";
			return false;
		}
		
	}else{
		//echo "8";
		return false;
	}
}//END FUNCTION
?>

Conclusion :


@VOUS FROM SALAH E

A voir également

Ajouter un commentaire

Commentaires

DAM74
Messages postés
10
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
15 janvier 2010

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

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

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

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
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
15
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 ^^

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.