Il peut-être utile de simplifier l'écriture d'une adresse IP (IP V4), par exemple, en vue de la stocker en base. En effet, sous sa forme standard (aaa.bbb.ccc.ddd), il sera nécessaire d'utiliser un champ VARCHAR du fait de la présence des points (.). Or, il est parfaitement possible de contourner ce petit handicap en transformant l'IP sous forme purement numérique.

La démarche est la suivante. Si nous disposons d'une IP sous la forme aaa.bbb.ccc.ddd, il suffit d'appliquer la formule :

(aaa*16777216)+(bbb*65536)+(ccc*256)+ddd
Par exemple, l'IP du site officiel de PHP est 208.210.50.161. Effectuons le calcul. Cela donne :

[04:34:22][armel@www:/usr/home/armel] > bc  
bc 1.05
Copyright 1991, 1992, 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
(208*16777216)+(210*65536)+(50*256)+161
3503436449
quit
Vous constaterez, sans surprise, que http://3503436449 permet bien de joindre le site officiel de PHP. Et qu'il sera bien plus simple de stocker 3503436449 plutôt que 208.210.50.161.

Il reste donc à implémenter une fonction capable de faire cette conversion en PHP. Et cela tombe bien, puisque PHP4 le propose en natif au travers de la fonction ip2long(). Du reste, la fonction connexe existe aussi. Il s'agit de long2ip().

Et en PHP3 ? Cela reste simple à implémenter. Et les User Contributed Notes de la doc en ligne vous proposerons quelques exemples de portage pour cette version de PHP.

ip2long()
long2ip()