begin process at 2012 02 15 22:13:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > SAVOIR SI LE VISITEUR EST UN ROBOT D'UN MOTEUR DE RECHERCHE

SAVOIR SI LE VISITEUR EST UN ROBOT D'UN MOTEUR DE RECHERCHE


 Information sur la source

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :ip, googlebot, bot, robot, cloaking Niveau :Débutant Date de création :29/04/2007 Date de mise à jour :29/06/2007 15:11:39 Vu :8 967

Auteur : MadM@tt

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (38)
Ajouter un commentaire et/ou une note


 Description

Bonjour à tous,

J'ai développé cette source afin d'éviter de compter les visites des robots dans mes compteurs de visites/visiteurs/téléchargements.

Cette fonction renvoie true si le visiteur est un robot d'un moteur de recherche. L'analyse se fait sur l'adresse IP du visiteur, donc si l'adresse IP d'un des robot vient à changer le script sera inefficace, c'est pourquoi il faut penser à maintenir à jour la liste des adresses IP (tous les 6 mois je pense)


La liste que j'ai récupérée vient d'ici :
http://www.actulab.com/identification-des-robots .php
(un peu vieille, je sais pas si certaines adresses ont changées, si vous savez précisez le, merci ;)

Source

  • // Renvoie TRUE si le visiteur de la page est un robot d'un moteur de recherche
  • function IsVisitorBot() {
  • // Tableau des adresses ip
  • $IPtab[] = '66.249.'; // Googlebot
  • $IPtab[] = '207.68.146.'; // MSN Bot
  • $IPtab[] = '65.54.188.'; // MSN Bot
  • $IPtab[] = '66.196.'; // Yahoo
  • $IPtab[] = '68.142.'; // Yahoo
  • $IPtab[] = '195.101.94.'; // Voila
  • $IPtab[] = '64.241.243.65'; // Wisenut
  • $IPtab[] = '209.249.67.1'; // Wisenut
  • $IPtab[] = '64.241.242.177'; // Wisenut
  • $IPtab[] = '66.77.73.'; // Fast
  • $IPtab[] = '62.212.117.198'; // Deepindex
  • $IPtab[] = '65.214.36.'; // Teoma
  • $IPtab[] = '65.214.38.10'; // Teoma
  • $IPtab[] = '212.127.141.180'; // Whalhello
  • $IPtab[] = '213.73.184.'; // Whalhello
  • $IPtab[] = '216.243.113.1'; // Gigablast
  • $IPtab[] = '217.205.60.225'; // Mirago
  • $IPtab[] = '62.119.21.157'; // picsearch
  • $IPtab[] = '193.218.115.6'; // Szukacz
  • $IPtab[] = '210.59.144.149'; // Openfind
  • $IPtab[] = '66.237.60.22'; // Openfind
  • $IPtab[] = '218.145.25.'; // Naver
  • // Vérifie chaque adresse
  • if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {
  • for($t = 0, $max = count($IPtab); $t < $max; ++$t) {
  • if (strpos($_SERVER['REMOTE_ADDR'], $IPtab[$t]) === 0)
  • {
  • return true;
  • }
  • }
  • }
  • return false;
  • }
// Renvoie TRUE si le visiteur de la page est un robot d'un moteur de recherche
function IsVisitorBot() {

	// Tableau des adresses ip
	$IPtab[] = '66.249.';			// Googlebot
	$IPtab[] = '207.68.146.';		// MSN Bot
	$IPtab[] = '65.54.188.';		// MSN Bot
	$IPtab[] = '66.196.';			// Yahoo
	$IPtab[] = '68.142.';			// Yahoo
	$IPtab[] = '195.101.94.';		// Voila
	$IPtab[] = '64.241.243.65';		// Wisenut
	$IPtab[] = '209.249.67.1';		// Wisenut
	$IPtab[] = '64.241.242.177';	// Wisenut
	$IPtab[] = '66.77.73.';			// Fast
	$IPtab[] = '62.212.117.198';	// Deepindex
	$IPtab[] = '65.214.36.';		// Teoma
	$IPtab[] = '65.214.38.10';		// Teoma
	$IPtab[] = '212.127.141.180';	// Whalhello
	$IPtab[] = '213.73.184.';		// Whalhello
	$IPtab[] = '216.243.113.1';		// Gigablast
	$IPtab[] = '217.205.60.225';	// Mirago
	$IPtab[] = '62.119.21.157';		// picsearch
	$IPtab[] = '193.218.115.6';		// Szukacz
	$IPtab[] = '210.59.144.149';	// Openfind
	$IPtab[] = '66.237.60.22';		// Openfind
	$IPtab[] = '218.145.25.';		// Naver

	// Vérifie chaque adresse
	if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {
		for($t = 0, $max = count($IPtab); $t < $max; ++$t) {
			if (strpos($_SERVER['REMOTE_ADDR'], $IPtab[$t]) === 0)
			{
			    return true;
			}
		}
	}
	return false;
}

 Conclusion

Si vous avez une liste plus à jour des adresses IP, merci de la proposer ;-)

En esperant que ça vous serve
MadMatt


 Historique

29 avril 2007 18:22:35 :
Optimisation de la boucle
29 avril 2007 21:04:19 :
Optimisation
30 avril 2007 14:22:32 :
Optimisation
30 avril 2007 15:22:10 :
Re optimisation
30 avril 2007 20:10:13 :
Correction d'un bug
01 mai 2007 22:05:50 :
Petit bug de mise à jour
29 juin 2007 15:11:39 :
correction d'un bug

 Sources du même auteur

Source avec Zip Source avec une capture WEBSH : WEB SHELL POUR ADMINISTRER UN SERVEUR LINUX SANS CLI...
EXECUTER UN SCRIPT LONGUE DURÉE SANS LIMITATION DU SERVEUR
CRÉER UNE MINIATURE LIMITÉE EN SURFACE (ET PAS EN DIMENSIONS...
CRÉER TOUTE UNE CHAINE DE RÉPERTOIRE : EXEMPLE CRÉER "/ESSAI...
SÉCURISER UN TEXTE ENREGISTRÉ SUR LE SERVEUR : SUPPRIMER L'E...

 Sources de la même categorie

Source avec Zip TAPI : METTRE EN RELATION DEUX POSTES TELEPHONIQUES par ravery
Source avec Zip CLIENT / SERVEUR : LES SOCKETS par Morphinof
Source avec Zip VALIDATEUR_3WC par lezj
Source avec Zip MYGGL GOOGLE API CLASS FOR BEGINERZ par lezj
CLASSE WIKILOC par aKheNathOn

 Sources en rapport avec celle ci

COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
Source avec Zip PROTÉGER UNE PAGE PAR UN MOT DE PASSE SANS COOKIES par Hitoshi54
MASQUER VOTRE CODE AUX ROBOTS VALIDEURS W3C par kylekatarnls
FAILLE GOOGLE par neolien
1 BOT POUR L'IRC AVEC SOCKET! par greg4

Commentaires et avis

Commentaire de Astalavista le 29/04/2007 02:48:41

Pas mal, mais :
Utilise plutot un fichier pour ta liste d'adresses, et  pour vérifier utilse plûtot ceci :
$IP = $REMOTE_ADDR;
// Vérifie chaque adresse
foreach( $IPtab as $IP_Rechercher)
if((strrpos($IP, $IP_Rechercher) === 0)return FALSE;
return TRUE;

Commentaire de MadM@tt le 29/04/2007 13:35:49

Merci pour le commentaire, par contre j'aurais besoin d'un peu d'explication :
pourquoi privilegier foreach plutot que for ? c'est plus rapide ?

Et de ton code j'en déduis que l'instruction "return" fait terminer la fonction ? (ce qui effectivement est bien mieux que ce que j'ai fait)

Pour le fichier, bonne idée, mais si ce code est appelé à chaque page vue ça risque de faire perdre beaucoup de temps s'il faut que j'ouvre le fichier à chaque fois, et que je parse le contenu.

Merci

Commentaire de neigedhiver le 29/04/2007 17:55:25

Salut,

Je ne crois pas que foreach() soit tellement plus rapide que for().
Par contre, la syntaxe de ta boucle est à proscrire à tout prix, parce que tu utilises la fonction count à chaque itération, ce qui est très couteux en performances.

Dans ton cas, foreach() est plus adapté car sa syntaxe est plus claire et tout aussi efficace.

Pour garder for() il faudrait faire comme ceci :
$nb = count($IPtab);
for($t = 1; $t <= $nb; $t++) {

La syntaxe $t++ est équivalente à $t = $t +1, mais plus courte, tout aussi claire et plus performante puisqu'elle ne fait appel qu'une seule fois à la variable (qui est lue chaque fois dans la pile, ne pas l'oublier) et qu'elle est optimisée pour cette opération...

Commentaire de MadM@tt le 29/04/2007 18:18:43

Ok merci beaucoup pour les infos, php a tellement de fonctions pour faire la meme chose qu'il est difficile de savoir laquelle utiliser.

Je vais m'empresser de modifier ça, surtout que j'utilise cette méthode dans toutes mes boucles for de mon site ^^

Commentaire de MadM@tt le 29/04/2007 18:24:47

Voilà c'est mis à jour.

Par contre je me pose la question concernant la recherche de l'ip dans l'ip du visiteur :
// Récupère la partie gauche de la chaine
$left = substr($IP, 0, strlen($IPtab[$t]));
if ($left == $IPtab[$t]) {
   $Return = true;
   break;
}

Je trouve ça bete de faire un substr à chaque boucle, mais comment faire une comparaison de chaine en partant à gauche de la chaine ?
(car les adresses IP du tableau sont de la form 168.69. mais avec un strpos il peut me le trouver dans une adresse de la forme 145.168.69....)

Commentaire de neigedhiver le 29/04/2007 20:44:42

Re,

Non non, strpos() est une très bonne solution, si on ne se contente pas de vérifier que la chaine a été trouvée, mais si on vérifie aussi la position (valeur retournée par strpos() justement !). En plus, c'est plus court :

if (strpos($IPtab[$t], $IP) === 0)
{
    return true;
}

Return va automatiquement sortir de la fonction et retourner true quand la chaine est trouvée.

Commentaire de MadM@tt le 29/04/2007 21:02:51

Ahhhh bien sur !

Merci pour le tuyeau ;-)

Commentaire de Astalavista le 30/04/2007 01:37:57

Je voit que j'ai aidé :), je te remercie  neigedhiver d'avoir affirmer ce que j'ai marqué ...

Ha oui, il y a encore une petite erreur :
for($t = 1; $t <= $max; $t = $t++)
S'utilise plutôt comme ca :
for($t = 1; $t <= $max; $t++)

ton count doit s'écrire en minuscule

à mon avis, le foreach est un peut plus adapté.
Si un jour tu supprime la clef 19 (par exemple), il faudra changer toutes tes autres clef.
Mais bon, si tu insiste pour utiliser ton for, ajoute tes IP de cette façon :
$IPtab[] = '66.249.';
$IPtab[] = '207.68.146.';
L'ajout se fera à la suite, et 0 par défaut.

Commentaire de neigedhiver le 30/04/2007 06:44:13

Salut,

En fait, le mieux, pour la déclaration du tableau, c'est encore array() :

$IPtab = array(
    '66.249.', // Googlebot
    '207.68.146.',  // MSN Bot
    '65.54.188.', // MSN Bot
    etc
);

Je trouve que c'est encore plus propre et plus joli.

Commentaire de kankrelune le 30/04/2007 13:57:31


for($t=1,$nb=count($IPtab);$t<=$nb;++$t)

Histoire d'optimiser encore un peu... perso je ne suis pas fan de cette méthode car si le bot à changé d'adresse ip ou s'il n'est pas répertorié ton script ne sert à rien... le mieux serait de faire un lien caché vers une page ou de compter le temps entre chaque ouverture de page et de stocker l'ip s'il sagit d'un bot... .. .

@ tchaOo°

Commentaire de kankrelune le 30/04/2007 13:58:45

Ah au fait... vire moi ce sale $REMOTE_ADDR et remplace le par $_SERVER['REMOTE_ADDR']... .. . ;o)

@ tchaOo°

Commentaire de MadM@tt le 30/04/2007 14:24:59

Voilà mis à jour ^^

C'est sympa d'avoir du monde pour repasser sur son code ;) merci beaucoup

Commentaire de neigedhiver le 30/04/2007 14:40:28

Je sais pas si tu imagines à quel point c'est sympa de faire des commentaires qui ne sont pas mal pris et qui servent à quelque chose...

Commentaire de MadM@tt le 30/04/2007 14:58:42

oui je te comprend, je suis assez actif sur vbfrance je vois de quoi tu parle ^^

Commentaire de neigedhiver le 30/04/2007 15:12:43

Je me rends compte que j'ai pas écrit du tout ce que je voulais dire... Je suis fatigué, j'ai plus l'habitude de bosser.
Euh donc je voulais dire que c'est sympa quand les gens prennent bien les commentaires et s'en servent de manière constructive, sans se vexer, etc.
Mais je crois que tu avais compris...
Bonne continuation.

Commentaire de kankrelune le 30/04/2007 15:13:35

Pareil que neigedhiver... .. . ;o)

Pour finir plutot que de faire...

$IP = $_SERVER['REMOTE_ADDR']
$max = count($IPtab) - 1;
for($t = 0; $t <= $max; $t++) {
    if (strpos($IPtab[$t], $IP) === 0)
    {
        return true;
    }
}
return false;

autant faire

if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']))
{
    for($t=0,$max=count($IPtab);$t<$max;++$t)
    {
        if (strpos($IPtab[$t], $_SERVER['REMOTE_ADDR']) === 0)
           return true;
    }
}
return false;

;o)

@ tchaOo°

Commentaire de MadM@tt le 30/04/2007 15:22:52

Ok c'est mis à jour, merci ;-), par contre j'en déduis que le $t++ et ++$t c'est la meme chose.

Commentaire de kankrelune le 30/04/2007 15:34:38

pas exactement... en fait $i++ c'est de la post incrémentassion et ++$i de la pré incrementassion... .. .

Dans le premier cas l'instruction, si instruction il y a, est exécutée puis la variable est incrémentée de 1... dans le second cas la variable est incrémentée puis l'instruction est exécutée... exemple...

$a = 1;
$b = $a++;

echo '$a = '.$a.',$b = '.$b; // affichera  $a = 2,$b = 1

---------------

$a = 1;
$b = ++$a;

echo '$a = '.$a.',$b = '.$b; // affichera  $a = 2,$b = 2

Hormis cette petite différence la pré incrémentassion est légèrement plus rapide que la post incrémentassion car en pré inc php ne se pose pas de question et incrémente directement la variable alors qu'en post inc php garde en mémoire qu'il doit incrémenter la variable après avoir exécuté l'instruction en cours... .. . ;o)

@ tchaOo°

Commentaire de neigedhiver le 30/04/2007 15:36:08

Je peux me permettre une remarque ?
empty($var) retourne true si :
- la variable $var est vide ( $var = '' )
- la variable $var n'est pas définie

Il me semble donc que le test isset($_SERVER['REMOTE_ADDR']) est inutile : si la variable $_SERVER['REMOTE_ADDR'] n'est pas vide, alors elle est définie.

Commentaire de MadM@tt le 30/04/2007 16:44:15

Ok mais alors si mon tableau va de 0 à count() - 1, il faut donc une boucle :
for($t = 0, $max = count($IPtab) - 1; $t < $max; ++$t)  ??

Commentaire de kankrelune le 30/04/2007 16:49:35

@ neigedhiver... oui ça marche mais syntaxiquement parlant c'est incorrect car tu teste si une variable non instanciée est vide... .. .

@ MadM@tt... non... soit tu fais...

for($t=0,$max=count($IPtab)-1;$t<=$max;++$t)

soit tu fais

for($t=0,$max=count($IPtab);$t<$max;++$t)

la deuxième étant la plus simple... .. .

@ tchaOo°

Commentaire de neigedhiver le 30/04/2007 17:10:16

Alors je vais encore chipoter (j'adooooore ça).

if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']))

Là aussi, syntaxiquement, tu vérifies si une variable potentiellement non instanciée est vide... Le fait de vérifier qu'elle existe ne la fait pas exister si tel n'est pas le cas...
Puor bien faire, il faudrait alors faire un autre test avec empty() dans le bloc if.
Non ?

Commentaire de Astalavista le 30/04/2007 19:04:13

kankrelune : Moi je me pose pas de question j'aurais pris un foreach et c'est bon ... il a été inventer pour le PHP autant l'utiliser ... non ?

Commentaire de MadM@tt le 30/04/2007 20:08:54

@Kankrelune > Ok j'avais oublié la nuance < et <= merci

Commentaire de Skreo le 01/05/2007 10:00:35

MadM@tt, ta méthode est lourde et pas très fiable (je ne pense pas que la liste des ips soit à jour).
Je conseillerais plutôt de vérifier l'user_agent qui, lui, est toujours défini par les bots des moteurs de recherche.
Voilà ce que je fais :

$isBot = preg_match('#googlebot|mediapartners|slurp|voilabot|msnbot|zyborg|fast-webcrawler|deepindex|teoma|directhit|walhello|gigabot|henrilerobotmirago|psbot|szukacz|openbot|dloader#i', $_SERVER['HTTP_USER_AGENT']);

Commentaire de kankrelune le 01/05/2007 12:08:07

@ neigedhiver... non car la première instruction de la condition étant fausse la seconde n'est pas vérifiée... .. .

@  Astalavista... pas forcement... foreach travail sur une copie du tableau, for non... après c'est une question de perf et de façon de faire... pour gagner en rapidité j'aurais tendance à faire...

$i = -1;
while(isset($IPtab[++$i]))
{
   ...
}

@ tchaOo°

Commentaire de MadM@tt le 01/05/2007 14:09:48

"Je conseillerais plutôt de vérifier l'user_agent qui, lui, est toujours défini par les bots des moteurs de recherche."
>> Si c'est bien défini par tous les bots alors oui, mais j'avais lu que c'était pas toujours le cas...

Commentaire de neigedhiver le 01/05/2007 19:48:12

@kankrelune : Bon sang de bon soir... Merci... Je ne savais pas exactement étaient évaluées les conditions multiples par if... J'ai fait un test pour vérifier tes dires (c'est pas que j'ai pas confiance, mais là, au moins, je peux me permettre de l'affirmer à mon tour si besoin, puisque j'ai expérimenté).
Donc merci pour ces petits détails qui enrichissent tous les jours ma culture de geek...

Commentaire de amery le 02/05/2007 16:30:54

J'ai essayé la fonction, mais ça n'a pas l'air de fonctionner. Par exemple, l'adresse Ip 66.249.66.133 n'est pas reconnu comme celle d'un moteur.

Amery

Commentaire de cpp4ever le 07/05/2007 14:05:43

vous etes au courant que le module php a des centaines de fonctions prédéfinie.
par exemple in_array :

if (in_array ($_SERVER['REMOTE_ADDR'], $IPtab)) {
return TRUE;
}
else {
return FALSE;
}

quant aux ip des bots je crois qu'il faut faire le tour des moteurs de recherche.

Commentaire de kankrelune le 07/05/2007 15:07:28

@ cpp4ever... oui merci ça fait un bail que je connais in_array()... lol... regarde bien la source avant de faire ce genre de réflection... tu remarquera que le tableau $ipTable contiens des plages d'ip et non pas que des ip complètes... et dans ce cas in_array() ne sert strictement à rien... à la limite preg_grep() aurait fait l'affaire mais perso je préfère la boucle... .. .

@ tchaOo°

Commentaire de cpp4ever le 07/05/2007 15:13:25

oups, effectivement
faut m'excuser, je croise tous le temps des coders
qui ne se donne jamais la peine d'aller voir le manuel de php,
que j'ai pris de mauvaises habitudes.

Commentaire de SrDjay le 29/06/2007 10:34:50

Bon día,

Une petite chose:
remplace : strpos($IPtab[$t], $_SERVER['REMOTE_ADDR'])
par : strpos($_SERVER['REMOTE_ADDR'],$IPtab[$t])
(Voila pourquoi ca marche pas amery...)  

Et pour tout ce qui souhaitent mettre à jour les IP:
http://www.crawltrack.fr/robot/index.php?navig=8&period=3&site=2

Bonne continuation MadM@tt,

Saludos,

Commentaire de MadM@tt le 29/06/2007 15:12:39

Merci pour ta précision, c'est mis à jour.

Et merci pour ta liste d'IP

Commentaire de kiki67100 le 10/07/2007 15:50:18

Garde les ips c'est plus sûr que les user agent
Simpa la source ;)

(tu aurais pus mettre tout les ips dans un fichier aussi )

@++

Commentaire de sy125gi le 10/07/2007 19:20:59

Et en fait, il faut metre ce fichier à quel endroit du site?

Commentaire de Anto1982 le 10/10/2008 12:20:54

Ne peut-on pas imaginer un "piège" à robots. J'en ai codé un (le code est en ligne sur le site).
Le principe est de récupérer l'IP sur une page cachée (lien gif transparent dans le coin de la page)

=> Aucun humain ne visitera cette page (donc on a une liste des robots).

Ensuite, pour savoir si le robot est "clean" j'ai imaginé un piège en utilisant 2 pages dissimulées dont une seule est interdite dans le fichier robots.txt.

Dans le cas ou aucune de ces 2 pages n'est visitée et que le nombre de requetes provenant d'une meme IP dans un espace de temps donné est superieur x, j'estime qu'il s'agit d'un mauvais robot... (dans ce cas, je compte le nombre de requetes sur 5mn par exemple, si le nombre est superieur a 500, il ne s'agit pas d'un humain... si le robot ne visite pas la page dissimulée autorisée, il s'agit donc d'un mauvais robot)

Si le robot visite une page interdite par mon fichier robot, il s'agit également d'un mauvais robot....

Le seul probleme c'est que si un "mauvais" robot se comporte comme un "bon" robot (qu'il suit les directives du fichier robots.txt), je ne peux pas le détecter...

Commentaire de Clad49 le 28/03/2010 23:32:13

Les dernières ip crawltrack :

$IPtab[] = '204.236.235.245'; //Alexa

$IPtab[] = '66.235.112.'; //Ask Jeeves/Teoma
$IPtab[] = '66.235.124.';

$IPtab[] = '220.181.'; //Baiduspider
$IPtab[] = '61.135.168.';

$IPtab[] = '208.115.111.242'; //DotBot

$IPtab[] = '88.131.106.'; //Entireweb

$IPtab[] = '193.47.80.36'; //Exabot

$IPtab[] = '66.249.71.75'; //Google-Adsense

$IPtab[] = '212.117.183.169'; //GoogleBot

$IPtab[] = '207.46.'; //MSN Bot
$IPtab[] = '65.55.';

$IPtab[] = '66.219.58.42'; //Metadata Labs

$IPtab[] = '38.99.97.118'; //ScoutJet

$IPtab[] = '67.195.110.163'; //Slurp Inktomi (Yahoo)
$IPtab[] = '72.30.161.225';

$IPtab[] = '81.19.66.89'; //StackRambler

$IPtab[] = '67.218.116.162'; //Twiceler

$IPtab[] = '193.252.118.'; //VoilaBot
$IPtab[] = '69.41.173.145';
$IPtab[] = '81.52.143.';

$IPtab[] = '77.88.31.247'; //Yandex

$IPtab[] = '119.235.237.'; //Yeti

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ignorer les ip's de robots indexeurs [ par pyranhaz ] Bonjour,J'aimerais savoir si ce bout de code pourrait indiquer de ne pas bannir le robot si son ip existe dans la bddc'est important pour le référence ::Problème avec mon compteur [ par kodiask ] voilà j'ai un compteur qui compte par raport aux ip des visiteur mai le problème est qu'il ne rentre pas les ip dans la BDD je compren pas pourquoi: v Connaitre l'ip du client ? [ par Joez ] Bonjour, je veux faire un sript PHP qui fonctionne selon l'ip du client ?Est ce possible ?comment recupérer l'ip du cleint en php ? Nom machine [ par Bruto ] j'ai trouvé sur le site php.net la possibilité de récupéré le nom de la machine&lt;?php$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); print $hos recuperer adresse ip: prq une fonction compliquee? [ par brice0306 ] voici une fonction trouvée sur le net:[code]function get_ip() { if($_SERVER) { if($_SERVER['HTTP_X_FORWARDED_FOR']) $ip = $_SERVER['HTTP_X_FORWA Mauvaise adresse IP retournée [ par xylo2 ] Bonjour,Pour déterminer l'IP de mes visiteurs, j'utilise :if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];} els IP/Fichier.txt: Probleme FOPEN [ par skurvy ] Voila mon problem:&lt;?$ip= $_SERVER["REMOTE_ADDR"];// Adresse ip$b= "&lt;br&gt;";// pour nouvelle ligne$chat = file("http://".$ip."/chat.txt"); //ouv if et else en php [ par mediapat ] slt à tousje suis débutant et n'arrive pas à faire un code avec condition.voici le début de mon code source :&lt;? $host = "213.228.13.136"; echo get BANNIR IP [ par Wars007 ] Salut qqun aurais un code php pour bannir une ip???PS:si vous vous y connaissez peut on faire par exemple:------ip.txt--------23.23.23.2324.24.24.24-- BANNIR IP DUN CHAT URGENT [ par Wars007 ] salut je voudrais savoir un code php pour bannir une simple adresse ip dun chat sans connecion mysql.merci :)PS:(je ve le bannir car il floof tlt!)


Nos sponsors


Sondage...

Comparez les prix

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,669 sec (3)

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