OVH Cloud OVH Cloud

IPToLong, LongToIP?

13 réponses
Avatar
Franck
Salut,

Bonne est heureuse année aux lecteurs de ce groupe ;-)

Je sèche un peu... Romain HELP! ;-)

J'ai une procédure qui me transforme une adresse IP vers un entier
long.
C'est en fait la résultante de l'opération ((a*256+b)*256+c)*256+d.

Exemple: 212.211.210.209 (a.b.c.d) donne 3570651857

Comment faire chemin inverse, à savoir retrouver 212.211.210.209 à
partir de 3570651857?

Merci de votre aide

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net

3 réponses

1 2
Avatar
Franck
Romain PETIT a formulé ce lundi :
Le 03/01/2005, Gégé a supposé :
Romain PETIT a écrit :
Hum, ça va laisser passer des IP en 999.888.777.555 ça non ?
Il vaut mieux utiliser une regexp du genre :
(([01]?dd?|2[0-4]d|25[0-5]).){3}([01]?dd?|2[0-4]d|25[0-5])



http://centrewd.free.fr/?page=ficheapi&t=f&n=inet_addr



Bah oui, mais il veut utiliser ses routines.



Bin vi, il est comme ça ;-)

A+

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Avatar
Franck
Romain PETIT a utilisé son clavier pour écrire :
Franck avait énoncé :

SI VérifieExpressionRégulière(sIP,
"([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})[.]([0-9]{1,3})",nA,nB,nC,nD)



Hum, ça va laisser passer des IP en 999.888.777.555 ça non ?
Il vaut mieux utiliser une regexp du genre :
(([01]?dd?|2[0-4]d|25[0-5]).){3}([01]?dd?|2[0-4]d|25[0-5])

A+



Ca laisse effectivement passer des IP futiristes...
Mais ma déclaration d'entiers (na, nb, nc, nd) sans signe sur 1 octet
ne les acceptera pas (0-255 pour un entier sans signe su 1 octet)

J'ai donc gardé ma syntaxe et ajouté:
si na>255 ou nb>255 ou nc>255 ou nd>255 alors renvoyer 0

A+

--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Avatar
Romain PETIT
Franck a écrit :
Romain PETIT a utilisé son clavier pour écrire :
Il vaut mieux utiliser une regexp du genre :
(([01]?dd?|2[0-4]d|25[0-5]).){3}([01]?dd?|2[0-4]d|25[0-5])





Ca laisse effectivement passer des IP futiristes...
Mais ma déclaration d'entiers (na, nb, nc, nd) sans signe sur 1 octet ne les
acceptera pas (0-255 pour un entier sans signe su 1 octet)



Très juste mais si l'utilisateur saisit 300, tu auras un joli 44 dans
ta variable....

J'ai donc gardé ma syntaxe et ajouté:
si na>255 ou nb>255 ou nc>255 ou nd>255 alors renvoyer 0



Ok, mais tu viens de rajouter une ligne de code... ;-)

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
1 2