2010-09-21 11 views
2

J'essaie de stocker les adresses IP des personnes qui visitent mon site Web. Pour cela, j'utilise le code ci-dessous.Impossible d'accéder à l'adresse IP du visiteur dans php

$serverIP=$_SERVER['REMOTE_ADDR']; 

mais au lieu d'obtenir une adresse IP comme 112.200.xxx.xxx (quand je visite), je suis 192.9.200.195 ..

quelqu'un s'il vous plaît aidez-moi

merci à l'avance

tismon

+1

Quel est le problème avec 192.9.200.195? –

+1

Quel est le problème avec '192.9.200.195'? N'est-ce pas votre adresse IP? Vous pouvez vérifier votre adresse IP externe avec, par exemple, http://www.whatismyip.com/ –

+0

192.9.200.195 est une adresse IP valide. En fait, la géolocalisation me dit qu'il appartient à Sun Microsystems à Santa Clara, en Californie. C'est la plage 192.168.x.x qui est privée. – NullUserException

Répondre

3

essayez ceci, c'est peut-être un proxy (?)

if ($_SERVER['HTTP_X_FORWARDED_FOR']) 
{ 
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
} 
else 
{ 
    $ip = $_SERVER['REMOTE_ADDR']; 
} 
echo $ip; 
1

essayer

function getRealIpAddr() 
{ 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet 
    { 
     $ip=$_SERVER['HTTP_CLIENT_IP']; 
    } 
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy 
    { 
     $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; 
    } 
    else 
    { 
     $ip=$_SERVER['REMOTE_ADDR']; 
    } 
    return $ip; 
} 
echo getRealIpAddr(); 
+0

qui montre également la même ip commençant par 192.9. quand je visite whatismyip.com, il montre un diff en commençant par 112.200. – tismon

2

semble que vous pensez 192.9.200.195 est une adresse IP locale - mais ce ne est pas, vous dire locales adresses commencent avec 192.168.. 192.9.200.195 semble ok à moi, si ce n'est pas, s'il vous plaît essayez d'expliquer votre problème plus en détail.

+0

oui, je pense 192.9.200.195 est mon ip local. quand je visite whatismyip.com, il montre un diff en commençant par 112.200. devrais-je changer quelque chose dans php.ini? – tismon

+0

@tismon: comme dit, ce n'est pas votre adresse IP locale (ou: cela ne devrait pas être votre IP locale car cela signifierait que votre réseau est totalement faux) - peut-être que le 112.200 ... est sauvegardé dans l'une des autres variables posté par yogesh (mais je ne pense pas). est-ce que vous utilisez un de ces "je veux être signataire sur Internet, alors cachez-moi" -programmes? – oezi

0

Vous pouvez aussi essayer ceci:

<?php 
$var = file_get_contents('http://www.whatismyip.com/automation/n09230945.asp'); 
print $var; 
?>