INET_ATON() et INET_NTOA() en PHP?

Je veux stocker les adresses IP dans ma base de données, mais j'ai aussi besoin de les utiliser tout au long de ma demande. J'ai lu sur l'utilisation de INET_ATON() et INET_NTOA() dans mes requêtes MySQL pour obtenir un 32 bits entier non signé d'une adresse IP, ce qui est exactement ce que je veux qu'il sera à la recherche par le biais de la base de données plus rapide que l'utilisation de char(15).

La chose est, je ne peux pas trouver une fonction qui fait la même chose en PHP. La seule chose que je suis tombé sur:

http://php.net/manual/en/function.ip2long.php

J'ai donc testé:

$ip = $_SERVER['REMOTE_ADDR'];
echo ip2long($ip);

Et il ne sort rien. Dans l'exemple qu'ils ont donné, cela semble fonctionner, mais encore une fois je ne suis pas sûr si ip2long() fait la même chose que INET_ATON().

Quelqu'un sait-une fonction PHP qui va le faire? Ou même une nouvelle solution de stockage d'une adresse IP dans une base de données?

Grâce.

  • Oublié à ajouter, je suis en train de travailler sur localhost, donc peut-être que c'est pourquoi ip2long() ne renvoie rien?
  • L'IPv4 de localhost est toujours 127.0.0.1, il devrait fonctionner, sauf si vous utilisez IPv6 - vérifier ma réponse.
InformationsquelleAutor blerh | 2010-05-02