J'essaie de récupérer l'adresse IP de ma machine via php. Pour cela j'écris le code comme:
<?php echo "<br />".$_SERVER['REMOTE_ADDR'];?>
Mais ce morceau de code ne fonctionne pas. Il revient "::1
". Veuillez m'aider à obtenir l'adresse IP réelle.
::1
est l'IP réelle. Il s'agit d'une adresse de bouclage ipv6 (c'est-à-dire localhost). Si vous utilisiez ipv4, ce serait 127.0.0.1
.
Si vous souhaitez obtenir une adresse IP différente, vous devrez vous connecter au serveur via une interface réseau différente.
Si vous essayez d'exécuter localhost, cette réponse résoudra votre problème. Quelques changements sur
Apache2/httpd.conf
rechercher tous les mots "écouter" ex:
Listen 80
Faites comme ça.
Listen 127.0.0.1:80
que de redémarrer votre Apache
$_SERVER[REMOTE_ADDR]
montrera Listen 127.0.0.1
vous pouvez voir la réponse dans ce lien de réponse détaillé
Si vous voulez obtenir l'adresse IP de l'utilisateur, vous pouvez faire quelque chose comme:
<?php
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip=$_SERVER['REMOTE_ADDR'];
}
?>
<?php echo "<br />".$ip;?>
Il obtiendra l'adresse IP réelle de l'utilisateur, indépendamment des procurations, etc.
$ _SERVER ['REMOTE_ADDR'] est l'adresse IP du client.
$ _SERVER ['SERVER_ADDR'] est l'adresse IP du serveur.
Référence: http://php.net/manual/en/reserved.variables.server.php