2011-05-02 3 views
0

J'ai fait une table dans mon mysql où je stocke les détails de connexion des utilisateurs. Nous stockons, adresse IP (comme long2ip), nom d'utilisateur, nom de site et l'heure. Ce que je voudrais faire est de vérifier si un utilisateur est connecté à un site avec plus de 2 ip différents.Comparer l'adresse IP dans php

+1

Pouvez-vous publier le code que vous utilisez pour stocker le nom d'utilisateur et l'adresse IP dans la base de données? Sinon, nous ne pouvons que donner des réponses génériques très vagues. il semble que ce serait très facile à faire en PHP. –

+0

Je devrais ajouter qu'avant d'éditer la question, j'ai simplement demandé 'est-ce facile en PHP'. D'où la réponse et le commentaire «Oui, c'est facile». – pavium

+0

La vérification si l'utilisateur a enregistré à partir de plus de 2 adresses IP différentes ("connecté avec 3 IP") n'est pas la même chose que la comparaison IP ("cette IP est (ou n'est pas) identique à cette IP"). – binaryLV

Répondre

4

Cela devrait être assez facile tant que vous avez la version stockée de la base de données disponible. Certains pseudo-code non testé:

$longIPdb = ip2long($ipfromdb); 
$longRemote = ip2long($_SERVER['REMOTE_ADDR']); 

if ($longIPdb == $longRemote) echo "We're the same."; 
else echo "We're from different IPs."; 
1

On dirait que cela doit être fait dans SQL, pas de PHP:

SELECT COUNT(DISTINCT ip) WHERE username='username'; 

Si nécessaire, cela peut être plus limité à temps (AND time > NOW()-3600). Le résultat sera le nombre d'adresses IP différentes que l'utilisateur a dans votre base de données (dans le délai donné, si spécifié).