Convertion d'adresses IP
Par Armel FAUVEAU, lundi 11 mars 2002 à 09:32 :: Trucs et Astuces PHP :: #334 :: rss
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)+dddPar 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 quitVous 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()







Commentaires
#1 - Le vendredi 18 août 2006 à 01:56, par Francisek
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.