2010-05-07 3 views
0

sur ma base de données J'ai décidé de stocker IP des visiteurs qui répond aux sondages. Il est tout travail, mais il n'y a que deux cas où non seulement 1 IP est stockée, mais il y a 2 SAME IP pour la même sortie de MySQL visiteur2 IP sont stockés pour un visiteur: PROXY?

(i remplacé 2 numéros par XX)

10.188.XX.129, 10.188.XX.129 

Voici le script pour recevoir la IP du visiteur:

<?php 
function realip() { 
    if (isset($_SERVER)) { 
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) { 
    $realip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
    } elseif (isset($_SERVER["HTTP_CLIENT_IP"])) { 
    $realip = $_SERVER["HTTP_CLIENT_IP"]; 
    } else { 
    $realip = $_SERVER["REMOTE_ADDR"]; 
    } 

    } else { 
    if (getenv('HTTP_X_FORWARDED_FOR')) { 
    $realip = getenv('HTTP_X_FORWARDED_FOR'); 
    } elseif (getenv('HTTP_CLIENT_IP')) { 
    $realip = getenv('HTTP_CLIENT_IP'); 
    } else { 
    $realip = getenv('REMOTE_ADDR'); 
    } 
    } 
    return $realip; 
    } 
?> 

ma question est: 99,9% du temps, seulement 1 IP est stockée sur MYSQL. J'ai 2 cas dans la base de données mySQL (exemple sur mon post) où 2 IP sont stockés sur 1 ligne de mySQL: cela signifie-t-il que les visiteurs utilisaient PROXY? Remerciements

+0

cette fonction doit s'appeler fakeip(). Quelle est la question de toute façon? Quelles sont ces 2 adresses IP que vous mentionnez? Gardez à l'esprit que vous ne parlez pas à ce développeur de scripts mais à des inconnus –

+0

ma question est la suivante: 99,9% du temps, seulement 1 IP est stockée sur MYSQL. J'ai 2 cas dans la base de données mySQL (exemple sur mon post) où 2 IP sont stockés sur 1 ligne de mySQL: cela signifie-t-il que les visiteurs utilisaient PROXY? –

+1

Qu'est-ce que MySQL a à voir avec ça? Si vous pensez qu'il y a un problème avec la fonction que vous avez collée, alors montrez-nous la sortie de la fonction, pas ce qui est dans votre base de données. Nous ne savons pas ce qui se passe dans votre couche de base de données puisque vous ne nous l'avez pas montré, donc nous ne pouvons pas le diagnostiquer. –

Répondre

1

ahhh bien, l'a compris finalement.
vous ne stockez pas l'adresse IP dans la colonne int ni même dans varchar (15), mais quelque chose comme varchar (255). Donc, tout peut être stocké. Donc, vous stockez n'importe quoi mais adresse IP.

bien. Si vous souhaitez stocker une adresse IP, il en existe une seule dans votre script: une adresse $_SERVER["REMOTE_ADDR"]. Il peut y avoir une certaine utilisation du résultat de la fonction realip(), mais il doit être utilisé avec précautions et connaissances, et - partie la plus importante - non pas à la place de l'adresse IP, mais seulement en plus, comme certains Info.

+0

ipClient varchar (39) (dans le cas de ipv6) 1. je vais utiliser cette fonction si elle est plus fiable pour comprendre IP des visiteurs/2. Je suis désolé, mais je n'ai pas compris votre 2.: D –

+0

@ Tristan ça va, je l'ai quand même enlevé. juste se débarrasser de cette fonction Realip. Et vous ne vous inquiétez pas des adresses ipv6 car il sera très lointain avenir futur –

+0

? J'ai déjà la possibilité en cochant une option sur ma page Web ISP de passer de ipv4 à ipv6 –

Questions connexes