Fonction pour calculer le nombre d'occurence dans une chaine

Mammouth du PHP | 1339 Messages

12 nov. 2005, 05:26

Voila.

Je fais une verification d'ip pour l'acces a mon site.

Genre si le mec est en 124.24.15.254 et que son mask est 124.24.*.*
Je veux que l'ip verifie soit juste 124.24

J'ai dev ce petit bout de code mais qui reste du bricolage pourri.
J'ai pas reussi mieux car je n'ai pas trouvé de fonction pour calculer le nombre d'occurence dans une chaine !

Qu'en pensez vous ?
<?php

				$ip = $_SERVER['REMOTE_ADDR'];
				$row['ip_autorise'] = "127.*.*.*";
				
				
				// Calcul du mask
				$count = explode('.*', $row['ip_autorise']);
				$explode = explode('.', $ip);
				$ip_mask = "";
				for($i=0;$i<5-count($count);$i++) {
				$ip_mask .= $explode[$i].".";
				 }
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 353 Messages

12 nov. 2005, 10:26

Si ton masque d'ip est 124.124 alors une petite vérification de ce type fonctionne:

Code : Tout sélectionner

<?php if (ereg('^124\.124\.', $_SERVER['REMOTE_ADDR'])) { // ip autorisée } else { // ip non autorisée } ?>

Mammouth du PHP | 1885 Messages

12 nov. 2005, 23:32

Fonction permettant de vérifier si une adresse IP est "autorisée" par le masque fournie.

La fonction vérifie également si les adresses IP fournies en paramètre sont valides. Si une des adresses IP est invalide, la fonction retourne FALSE.

Si l'adresse IP est autorisée, la fonction retourne TRUE.
<?php
/*
 * $ip = 192.168.2.1
 * $mask = 192.168.0.0
*/
function authorizeIP($ip, $mask) {

	// Changement de l'adresse IP en format long
	// Adresse IP invalide retourne FALSE
	if (FALSE === ($ip = ip2long($ip))) { return FALSE; }

	// Changement de l'adresse IP mask en format long
	// Adresse IP invalide retourne FALSE
	if (FALSE === ($mask = ip2long($mask))) { return FALSE; }
	
	// Vérification de la concordance
	return $mask === ($ip & $mask);
}

if (TRUE === authorizeIP('192.168.2.1', '192.168.0.0') ) {
	echo 'Adresse IP autorisée';
} else {
	echo 'Adresse IP interdite';
}
?>
La programmation est l'expression de la poésie d'un programmeur
Génération PHP