2009-06-13 7 views
1

La méthode getClientIP() qui vient avec CakePHP retourne les adresses IP privées parfois. Par exemple, des adresses IP comme 127.0.0.1 ou 192.x.x.x. Je suppose que cela est causé par des procurations. Si l'on regarde le code getClientIP(), on dirait qu'il essaie de gérer les problèmes de proxies, mais il ne vérifie pas vraiment si l'adresse IP est privée ou non.Méthode anti-erreur pour obtenir une adresse IP externe (non privée) sur CakePHP?

Quelle serait la meilleure façon d'obtenir le vrai, non-privé, l'adresse IP?

Merci.

Répondre

2

Essayez d'appeler getClientIp(false). Si cela ne fonctionne pas, vous pouvez simplement utiliser $_SERVER["REMOTE_ADDR"] directement à la place. Il contiendra toujours l'adresse IP externe réellement connectée au serveur. Cette adresse ne peut pas être manipulée, contrairement aux en-têtes http destinés aux proxies.

Questions connexes