[PHP]Récuperer l'ip du visiteur

Résolu/Fermé
esox_ch Messages postés 770 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 14 mars 2007 - 5 mai 2003 à 22:27
 L'Homme du futur - 23 déc. 2014 à 15:05
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

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
0
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.
0
J'ai fait une petite erreur, il faut enlever le if(isset avant le fputs.
Désolé du double message.
0
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 :
$ipClient = $_SERVER['REMOTE_ADDR'];
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
11 août 2010 à 17:28
La réponse a déjà été donnée ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
funnycat Messages postés 153 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 10 mars 2019 65
23 mars 2013 à 12:14
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:
<?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
0
esox_ch Messages postés 770 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 14 mars 2007 49
9 mai 2003 à 14:40
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
-1
esox_ch Messages postés 770 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 14 mars 2007 49
5 mai 2003 à 23:24
Ok zut j'habite pas a Paris.. *demande a ses parents si on peut pas demenager a Paris, réponse: NON!* Ouin serais jamais modo :p , zavez du bol!

Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités
-2