begin process at 2012 02 12 19:30:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > VERIFICATION D'UNE IP DANS UNE PLAGE

VERIFICATION D'UNE IP DANS UNE PLAGE


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Classé sous :plage ip, php plage, php ip Niveau :Initié Date de création :30/01/2009 Date de mise à jour :30/01/2009 19:09:39 Vu :2 305

Auteur : New_World

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

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

  • <?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
  • ?>
<?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


 Historique

30 janvier 2009 19:09:39 :
pas de modifs

 Sources de la même categorie

EXEMPLE D'APPLICATION DE L'ALGORITHME DE DIJKSTRA EN PHP par philtr8
CLEF POUR EAN 13 ET 14 par RaftY
FONCTION DE CALCUL DU NOMBRE DE DUEL UNIQUE POUR UN NOMBRE N... par mtrix000
Source avec Zip Source avec une capture TRIANGLE DE PASCAL ET SON ÉQUATION par vendeeHdLR89
Source avec Zip CONVERTISSEUR LAMBERT2 ÉTENDU EN COORDONNÉE GÉOGRAPHIQUE (LO... par varfendell

Commentaires et avis

Commentaire de Dexmon le 31/01/2009 10:30:19

Merci pour ce code :-) il marche parfaitement

Commentaire de TheSin le 31/01/2009 11:12:31

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 ?).

Commentaire de Palleas_44 le 31/01/2009 15:00:52

- 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

Commentaire de winwarrior le 31/01/2009 15:26:52

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));
}

Commentaire de neigedhiver le 01/02/2009 12:27:04

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 ^^

Commentaire de New_World le 01/02/2009 23:58:21

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

Commentaire de New_World le 02/02/2009 11:05:56

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 ;)

Commentaire de cherifnet2002 le 06/02/2009 23:13:48

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

Commentaire de DAM74 le 13/01/2010 15:53:50

super comme idée !!!!

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,451 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales