[PHP]Récuperer l'ip du visiteur
Résolu/Fermé
esox_ch
Messages postés
770
Date d'inscription
Statut
Membre
Dernière intervention
-
L'Homme du futur -
L'Homme du futur -
Bonjour,
j'aurais besoin de detecter l'ip des visiteurs de mon site, je sais qu'il y a une fonction en php qui le permet mais j'arrive plus a y mettre la main dessus ni a me la rappeller alors si 4a viens a l'esprit a qqn... *enragé, deteste avoir des trous de memoire*
Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités
j'aurais besoin de detecter l'ip des visiteurs de mon site, je sais qu'il y a une fonction en php qui le permet mais j'arrive plus a y mettre la main dessus ni a me la rappeller alors si 4a viens a l'esprit a qqn... *enragé, deteste avoir des trous de memoire*
Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités
A voir également:
- Php ip visiteur
- Ethernet n'a pas de configuration ip valide - Guide
- Télévision ip - Guide
- Comment connaître son adresse ip - Guide
- IPTV illégal : après les pirates, la justice condamne maintenant les clients… jusqu'à la prison ! - Guide
- Trouver adresse ip iphone 4g ✓ - Forum iPhone
27 réponses
Il y a une solution, qui retrouve l'ip du visiteur, ou sinon qui prend l'ip du serveur :
http://www.asp-php.net/ressources/bouts_de_code.php?codid=500
http://www.asp-php.net/ressources/bouts_de_code.php?codid=500
Si tu veut enregistrer l'ip dans un log, je te prête un script fait par moi :
<?php
$jour = date("d");
$mois = date("m");
$annee = date("Y");
$heure = date("H");
$minutes = date("i");
$fichier = fopen("logs.txt", "a+");
if (isset($_SERVER["HTTP_USER_AGENT"]))
{
$naviguateur = $_SERVER["HTTP_USER_AGENT"];
echo "Votre naviguateur est : $naviguateur";
}
else
{
$naviguateur = "INCONNU";
echo "Désolé, mais votre naviguateur ($naviguateur) est inconnu.";
}
if (isset($_SERVER["REMOTE_ADDR"]))
{
$ip = $_SERVER["REMOTE_ADDR"];
echo "<br />Votre IP est : $ip";
}
else
{
$ip = "INCONNU";
echo "Désolé, mais votre IP ($ip) est inconnue";
}
if (isset
fputs ($fichier, " Date : $jour/$mois/$annee\n Heure : $heure:$minutes\n Naviguateur : $naviguateur\n IP : $ip\n\n\n" );
fclose ($fichier);
?>
Sinon pour affichier l'IP tu fait :
<?php
$ip = $_SERVER["REMOTE_ADDR"];
echo "Votre ip est $ip";
?>
Pour l'IP de ton serveur weserveur webp
$ip = $_SERVER["SERVER_ADDR"];
echo "l'IP du serveur est $ip";
?>
Bref sinon j'ai une question :
J'utilise le script tout en haut, qui enregistre l'IP et le naviguateur dans les logs, mais comment je pourrais faire pour faire en sorte de regarder si une IP est déjà inscrite dans les logs et si oui, ne pas l'enregistrer.
J'espère que j'ai été clair,
Pour un monde libre,
Brendan.
<?php
$jour = date("d");
$mois = date("m");
$annee = date("Y");
$heure = date("H");
$minutes = date("i");
$fichier = fopen("logs.txt", "a+");
if (isset($_SERVER["HTTP_USER_AGENT"]))
{
$naviguateur = $_SERVER["HTTP_USER_AGENT"];
echo "Votre naviguateur est : $naviguateur";
}
else
{
$naviguateur = "INCONNU";
echo "Désolé, mais votre naviguateur ($naviguateur) est inconnu.";
}
if (isset($_SERVER["REMOTE_ADDR"]))
{
$ip = $_SERVER["REMOTE_ADDR"];
echo "<br />Votre IP est : $ip";
}
else
{
$ip = "INCONNU";
echo "Désolé, mais votre IP ($ip) est inconnue";
}
if (isset
fputs ($fichier, " Date : $jour/$mois/$annee\n Heure : $heure:$minutes\n Naviguateur : $naviguateur\n IP : $ip\n\n\n" );
fclose ($fichier);
?>
Sinon pour affichier l'IP tu fait :
<?php
$ip = $_SERVER["REMOTE_ADDR"];
echo "Votre ip est $ip";
?>
Pour l'IP de ton serveur weserveur webp
$ip = $_SERVER["SERVER_ADDR"];
echo "l'IP du serveur est $ip";
?>
Bref sinon j'ai une question :
J'utilise le script tout en haut, qui enregistre l'IP et le naviguateur dans les logs, mais comment je pourrais faire pour faire en sorte de regarder si une IP est déjà inscrite dans les logs et si oui, ne pas l'enregistrer.
J'espère que j'ai été clair,
Pour un monde libre,
Brendan.
Il faut utiliser les variables prédéfinies $_SERVER.
https://www.php.net/manual/en/reserved.variables.server.php
Pour avoir l'ip d'un client :
https://www.php.net/manual/en/reserved.variables.server.php
Pour avoir l'ip d'un client :
$ipClient = $_SERVER['REMOTE_ADDR'];
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour.
Aucune des réponses ne présente la meilleur réponse possible. Certes la variable PHP "$_SERVER['REMOTE_ADDR']" permet de retourner l'adresse IP d'un visiteur, mais si celui-ci est connecté derrière un proxy alors cette variable retournera l'adresse IP du proxy au lieu de celle du visiteur. Utiliser seulement cette variable est trompeur et inexacte.
Pour être plus précis il convient plutôt d'utiliser la fonction PHP suivante:
Ce code est relativement simple à comprendre et permet de retourner une adresse IP plus censée. Le seul problème qui persiste c'est que la fonction retournera toujours l'adresse IP du proxy s'il s'agit d'un proxy anonyme. Toutefois, ça reste plus sécurisé et plus sérieux que d'utiliser simplement "$_SERVER['REMOTE_ADDR']".
Source : http://www.infowebmaster.fr/tutoriel/php-fonction-adresse-ip
Aucune des réponses ne présente la meilleur réponse possible. Certes la variable PHP "$_SERVER['REMOTE_ADDR']" permet de retourner l'adresse IP d'un visiteur, mais si celui-ci est connecté derrière un proxy alors cette variable retournera l'adresse IP du proxy au lieu de celle du visiteur. Utiliser seulement cette variable est trompeur et inexacte.
Pour être plus précis il convient plutôt d'utiliser la fonction PHP suivante:
<?php /** * Récupérer la véritable adresse IP d'un visiteur */ function get_ip() { // IP si internet partagé if (isset($_SERVER['HTTP_CLIENT_IP'])) { return $_SERVER['HTTP_CLIENT_IP']; } // IP derrière un proxy elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { return $_SERVER['HTTP_X_FORWARDED_FOR']; } // Sinon : IP normale else { return $_SERVER['REMOTE_ADDR']; } } // Afficher l'adresse IP echo 'Adresse IP réelle du visiteur : ' .get_ip(); ?>
Ce code est relativement simple à comprendre et permet de retourner une adresse IP plus censée. Le seul problème qui persiste c'est que la fonction retournera toujours l'adresse IP du proxy s'il s'agit d'un proxy anonyme. Toutefois, ça reste plus sécurisé et plus sérieux que d'utiliser simplement "$_SERVER['REMOTE_ADDR']".
Source : http://www.infowebmaster.fr/tutoriel/php-fonction-adresse-ip
Ouep c vrai que les pop-up c nul.. Mais ... Chez.com est un des serveur free (admettant php) les + rapid que je connaisse (pas comme lycos .. si on lance la page avant d'aller se coucher on a p-e une chance de la voir le jour d'apres). J'ai essayer de créé un serveur http sur mon ordio mais sans succes (conflit entre le prog et Easyphp apperemment, et vu que je trouve aucun tuto conplet et compreansible de apache&mysql ...). Mais bon si qqn a une idée d'un autre serveur ou d'ou je peu trouver le tuto complet ou de comment resoudre mes prob de serveur http... ca serais cool :p
Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités
Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités