Bonjour à tous,
J'ai placé un petit compteur de visite sur le site d'une association
et je voudrais éviter de comptabiliser dans ma bdd des adresses
ip de robots ou de visiteurs se connectant depuis l'étranger.
Existe t-il un moyen de savoir si l'ip du visiteur est Française ?
Comment coder ça et exclure l'enregistrement d'une IP étrangère ?
Merci d'avance pour vos tuyaux...
Voici mon code fonctionnel, mais qui compte TOUTES les visites !
// Connexion à la base de donnée :
require ('gestion/connexion.php');
// L'IP se trouve déjà dans la table ?
$requete = $bdd->query('SELECT COUNT(*) AS connectes FROM visiteurs WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
$reponse = $requete->fetch();
if ($reponse['connectes'] == 0) // L'IP ne se trouve pas dans la table, on l'ajoute.
{
$bdd->exec('INSERT INTO visiteurs VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');
}
else // L'IP se trouve déjà dans la table, on met juste à jour le timestamp.
{
$bdd->exec('UPDATE visiteurs SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
}
Comptage des visites :
<?php
// Comptage des visites :
requete = $bdd->query('SELECT COUNT(*) AS connectes FROM visiteurs');
$reponse = $requete->fetch();
?>
<footer>
<p>
<?php echo 'Nombre de visite à ce jour : ' . $reponse['connectes']; ?>
<br />
</p>
</footer>
Merci Benjamin pour les pistes...
Mais mon hébergeur Infomaniak n'intégrant pas l'extension GeoIP sur ses serveurs, j'ai finalement suivi leur conseil
ici : http://www.phpandstuff.com/articles/geoip-country-lookup-with-php
Ce qui donne pour moi :
// Connexion à la base de donnée :
require ('gestion/connexion.php');
include("geoip.inc");
// ouverture de la base de données Geoip :
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
// Récupération du code pays du visiteur :
$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
// Enregistrement du visiteur uniquement si son IP est basée en France :
if($country_code=='FR'){
(code cf post précédent...)
}
Testé avec anonymoX : semble fonctionner !
Encore merci !