Fonction pour calculer le nombre d'occurence dans une chaine

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction pour calculer le nombre d'occurence dans une chaine

par Xenon_54 » 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';
}
?>

par nicolas » 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 } ?>

Fonction pour calculer le nombre d'occurence dans une chaine

par Elie » 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].".";
				 }