begin process at 2010 03 22 03:49:25
  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 :1 339

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

Source avec une capture CALCUL DE TVA MARGE AVEC REMISE FOURNISSEUR SPÉCIALE POUR LE... par lcomb
Source avec Zip EVALUER UNE EXPRESSION À PARTIR D'UNE CHAINE DE CARACTÈRE par TheWeasel47
FONCTION EQUATION LÉGÈRE par ff5
Source avec Zip Source avec une capture TRACEUR DE COURBE EN COORDONNÉES CARTÉSIENNES (MAJ) par fredbonmatin
CONVERTIR LES RÉFÉRENCES DE COLONNE EXCEL DE CHIFFRE EN LETT... par computman007

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

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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 : 0,593 sec (3)

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