Pas de Detection de Fast


Gralon
WRInaute impliqué
WRInaute impliqué
 
Messages: 663
Inscription: 2 Nov 2002

Message le Ven Fév 28, 2003 9:50

ben voila le code en entier,
... j'ai réindenté le code pour une meilleure lisibilité des tests, je n'ai pas changé les commentaires par contre, ni changé la requete pour rendre plus "lache" la recherche d'agent :
fichier dispo à l'adresse :
http://www.cote.azur.fr/googlestats.txt
(on parle du ficher googlestats.inc.php ...)
--------------------------------------------------------------------------
<?php

/***************************************************************************
*
* GoogleStats
*
* Author: Olivier Duffez, WebRankInfo ( http://www.webrankinfo.com )
* Version: 2.0
* Date: 2003-02-23
* Homepage: http://www.googlestats.com
*
***************************************************************************/

function debug1($x)
{
// echo "|$x|<br>";
}

function sendErrorMySQL($sql)
{
global $ADRESSE_EMAIL, $LANG;

if ($SEND_ERROR_MYSQL == 'y')
{
@mail($ADRESSE_EMAIL, $LANG["MySQLErrorSubject"],
$LANG["MySQLErrorBody1"].$sql."\n".$LANG["MySQLErrorBody2"],
"From: $ADRESSE_EMAIL");
}
}

// pour compatibilité avec les anciennes versions de PHP
if (!isset($_SERVER))
$_SERVER = $HTTP_SERVER_VARS;

// pour chaque robot (sauf ceux qui sont désactivés)
$sql = "SELECT *";
$sql .= " FROM ".$TABLE_ROBOTS;
$sql .= " WHERE ((user_agent = \"$_SERVER[HTTP_USER_AGENT]\" and user_agent !=\"\") || (\"$_SERVER[REMOTE_ADDR]\" REGEXP CONCAT('^',
ip1) and ip1 !=\"\") || (\"$_SERVER[REMOTE_ADDR]\" REGEXP CONCAT('^', ip2) and ip2 !=\"\"))";
$sql .= " and actif=1";
$res = mysql_query($sql) or sendErrorMySQL($sql);

while ($enr = mysql_fetch_array($res))
{
// date, adresse IP du robot et nom de domaine
$robot_ = $enr["id"];
$date_ = date("Y-m-d H:i");
$ip_ = $_SERVER["REMOTE_ADDR"];
$dns_ = @gethostbyaddr($ip_);

// récupération de l'URL (située après le nom de domaine)
if ($URL_REWRITING == 'y')
{
$url_ = $_SERVER['REQUEST_URI'];
}
else
{
$url_ = $_SERVER["SCRIPT_NAME"];
if ($_SERVER["QUERY_STRING"] != "")
$url_ .= "?".$_SERVER["QUERY_STRING"];
}

// requete MySQL d'insertion de la visite
$sql2 = "INSERT INTO ".$TABLE_LOG;
$sql2 .= " (robot, url, date, ip, dns) VALUES ('$robot_', '$url_', '$date_', '$ip_', '$dns_')";
$res2 = mysql_query($sql2) or sendErrorMySQL($sql2);

// test du debut du Full Crawl
if ($TEST_FULL_CRAWL == 'y')
{
// si le robot est le GoogleBot Full Crawl
if ( strpos($_SERVER["REMOTE_ADDR"], $FULL_CRAWL_IP) !== false )
{
// on va chercher s'il est déjà venu dans les $NB_J_DET_FULL_CRAWL
// derniers jours
$sql3 = "SELECT id";
$sql3 .= " FROM ".$TABLE_LOG;
$sql3 .= " WHERE ip LIKE '".$FULL_CRAWL_IP."%')";
$sql3 .= " AND TO_DAYS(NOW()) - TO_DAYS(date)) < $NB_J_DET_FULL_CRAWL";
$res3 = mysql_query($sql3) or sendErrorMySQL($sql3);

// si la requete n'a donné aucun résultat, c'est sans doute le
// début du Full Crawl : on envoie un mail
if (mysql_num_rows($res3) == 0)
{
@mail($ADRESSE_EMAIL,
$LANG["FullCrawlBeginSubject"],
$LANG["FullCrawlBeginBody"],
"From: $ADRESSE_EMAIL");
}
}

} // fin du test sur le Full Crawl


} // fin de la boucle sur les robots

?>
----------------------------------------------------------------------------------


hetzeld
WRInaute passionné
WRInaute passionné
 
Messages: 2209
Inscription: 2 Déc 2002

Message le Ven Fév 28, 2003 10:02

C'est sympa, merci !

Dan


WebRankInfo
Administrateur du site
Administrateur du site
 
Messages: 19420
Inscription: 19 Avr 2002

Message le Ven Fév 28, 2003 10:39

ça m'a l'air très bien mais on ne gère plus le mode de détection ?
c'est soit par le nom d'agent, soit par l'IP (mais ce n'est pas exlusif) ?
si ça marche bien c'est cette version que je vais mettre dans la version 2.01


Gralon
WRInaute impliqué
WRInaute impliqué
 
Messages: 663
Inscription: 2 Nov 2002

Message le Ven Fév 28, 2003 10:51

WebRankInfo a écrit:ça m'a l'air très bien mais on ne gère plus le mode de détection ?
c'est soit par le nom d'agent, soit par l'IP (mais ce n'est pas exlusif) ?
si ça marche bien c'est cette version que je vais mettre dans la version 2.01


non le mode de détection n'est pas géré et à mon avis, il vaut mieux privilégier la détection par IP (n'importe qui peut se faire passer pour googlebot dans son agent).

ou alors on peut être plus restrictif faire que l'agent soit celui du robot ET qu'il corresponde au bon "range" d'IP du robot donc on aurait une requete du style :

$sql = "SELECT *";
$sql .= " FROM ".$TABLE_ROBOTS;
$sql .= " WHERE (("$_SERVER[HTTP_USER_AGENT]" REGEXP CONCAT('^', user_agent) and user_agent !="") && ( ("$_SERVER[REMOTE_ADDR]" REGEXP CONCAT('^', ip1) and ip1 !="") || ("$_SERVER[REMOTE_ADDR]" REGEXP CONCAT('^', ip2) and ip2 !="")))";
$sql .= " and actif=1";

"requete non testé pour le moment"

donc là, recherche sur l'agent du robot commencant par "valeur dans la table" et vérification de l'IP ...
plus restrictif mais plus sûr ...
par contre cela oblige à remplir le champs agent pour tous les moteurs ...

euh oubli dans le dernier code pour la gestion du addslashes (si vous n'êtes pas en magic quotes).

----------------------------------
au fait pour ceux qui ont un site basé sur la Côte d'Azur, vous pouvez rajouter le robot suivant dans la gestion des robots (c'est le robot de mon site :wink: ) :
Nom : Sunindexer
Nom d'agent : SunIndexer ( http://www.cote.azur.fr/SunIndexer.html )
Adresse ip : 62.4.9.28
mode detection : comme vous voulez
description: Robot du site cote.azur.fr
URl : http://www.cote.azur.fr/SunIndexer.html

jamesteston
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 1
Inscription: 3 Fév 2003

Message le Sam Mar 01, 2003 15:34

Gralon,

Cela a l'air bien et je suis d'accord avec toi quant à l'inutilité de poursuivre la boucle PHP comme dans la version originale une fois un robot détecté.


Ca peut toutefois servir de laisser la boucle poursuivre: si vous avez plusieurs robots pouvant être détectés pour un même nom/IP, ex: si le robot de test est activé.
Personnellement, j'ai levé le test dans la boucle car je me sers du robot de test pour détecter des robots non encore configurés.

Par contre, pour optimiser, on pourrait eviter les robot de test dans la boucle et ne faire qu'un test en sortie de boucle sur l'activation du robot de test...

Pas de Detection de Fast

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Fast Flip

  • Analyse de similarité textuelle
    Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués.
  • Test de redirection
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Transformer des simples citations de votre site en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
  • Calcul du taux de liens profonds
    Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités