[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
L'Homme du futur - 23 déc. 2014 à 15:05
A voir également:
- Adresse ip php
- Ethernet n'a pas de configuration ip valide - Guide
- Nom de l'adresse ✓ - Forum Réseaux sociaux
- Rechercher ou entrer l'adresse - Guide
- Comment connaître son adresse ip - Guide
- Darkino nouvelle adresse - Guide
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'];
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
11 août 2010 à 17:28
La réponse a déjà été donnée ...
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
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:
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
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
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
Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités
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
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
Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités