Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] Y a-t-il un matheux dans la salle ?

8 réponses
Avatar
Yves B.
Bonjour,

J'avoue que je sèche sur le Pb suivant:
- J'ai une base de données dans laquelle des adresses IP sont stockées sous forme numérique;
- J'ai la formule qui permet de transformer une adresse IP en un nombre;
- Je ne parviens pas à faire la transformation: Nombre vers IP :o(

Exemple:
adresse IP = A.B.C.D
Formule correspondant = (A*256*256*256)+(B*256*256)+(C*256)+D
représentation numérique = 16 909 060

Comment reconstituer A.B.C.D à partir de 16 909 060 ???

Merci de vos pistes

8 réponses

Avatar
Gilles Le nouveau
Yves B. avait soumis l'idée :
Bonjour,

J'avoue que je sèche sur le Pb suivant:
- J'ai une base de données dans laquelle des adresses IP sont stockées sous
forme numérique;
- J'ai la formule qui permet de transformer une adresse IP en un nombre;
- Je ne parviens pas à faire la transformation: Nombre vers IP :o(

Exemple:
adresse IP = A.B.C.D
Formule correspondant = (A*256*256*256)+(B*256*256)+(C*256)+D
représentation numérique = 16 909 060

Comment reconstituer A.B.C.D à partir de 16 909 060 ???

Merci de vos pistes



Je suis pas mateux : mais 4 inconnus pour une seule équation, je ne
vois vraiment pas comment faire.
Avatar
pm_wdev
Bonjour,

j'ai trouve ce code en Python,
c'est peut etre convertible :
(lien :
http://svn.osgdc.org/browse/~raw,rI4/kusu/sandbox/kusu/trunk/src/kits/base/packages/kusu-base-installer/lib/kusu/ipfun.py
)


def number2ip(number):
"""number2ip - Convert a 32bit integer into a IPv4 address.
Returns: The IP address numerically equivilent to
the number."""
ip = ''
byte1 = number & 0xff
byte2 = (number & 0xff00) >> 8
byte3 = (number & 0xff0000) >> 16
byte4 = (number & 0xff000000) >> 24
ip = "%i.%i.%i.%i" % (byte4, byte3, byte2, byte1)
return ip

Cordialement,
pm


Yves B. a écrit :
Bonjour,

J'avoue que je sèche sur le Pb suivant:
- J'ai une base de données dans laquelle des adresses IP sont stockées sous
forme numérique;
- J'ai la formule qui permet de transformer une adresse IP en un nombre;
- Je ne parviens pas à faire la transformation: Nombre vers IP :o(

Exemple:
adresse IP = A.B.C.D
Formule correspondant = (A*256*256*256)+(B*256*256)+(C*256)+D
représentation numérique = 16 909 060

Comment reconstituer A.B.C.D à partir de 16 909 060 ???

Merci de vos pistes


Avatar
titou44
Yves B. a exprimé avec précision :
Bonjour,

J'avoue que je sèche sur le Pb suivant:
- J'ai une base de données dans laquelle des adresses IP sont stockées sous
forme numérique;
- J'ai la formule qui permet de transformer une adresse IP en un nombre;
- Je ne parviens pas à faire la transformation: Nombre vers IP :o(

Exemple:
adresse IP = A.B.C.D
Formule correspondant = (A*256*256*256)+(B*256*256)+(C*256)+D
représentation numérique = 16 909 060

Comment reconstituer A.B.C.D à partir de 16 909 060 ???

Merci de vos pistes



bonsoir

je pense qu'il faut enchainer 4 divisions par 256 :

si N = representation numerique
D= reste de la division de N par 256
DI1 = dividende de cette division
B ou C = reste de la division de DI1 par 256
DI2 = dividende de cette division
...

et ainsi de suite

à tester et sans garantie du gouvernement

titou44 chez freesurf.fr
Avatar
Alain D
"Yves B." a écrit dans le message de news:

Bonjour,

J'avoue que je sèche sur le Pb suivant:
- J'ai une base de données dans laquelle des adresses IP sont stockées
sous forme numérique;
- J'ai la formule qui permet de transformer une adresse IP en un nombre;
- Je ne parviens pas à faire la transformation: Nombre vers IP :o(

Exemple:
adresse IP = A.B.C.D
Formule correspondant = (A*256*256*256)+(B*256*256)+(C*256)+D
représentation numérique = 16 909 060

Comment reconstituer A.B.C.D à partir de 16 909 060 ???

Merci de vos pistes





nNombre est un entier = 16909060

nA, nB, nC, nD, nX sont des entiers

nX = nNombre
nD = modulo(nX, 256)
nX = (nX - nD)/256
nC = modulo(nX, 256)
nX = (nX - nC)/256
nB = modulo(nX, 256)
nX = (nX - nB)/256
nA = modulo(nX, 256)

nControle est un entier = (nA*256*256*256)+(nB*256*256)+(nC*256)+nD

Info("Nombre= " + nNombre, "A=" + nA, "B=" + nB, "C=" + nC, "D=" + nD,
"Controle=" + nControle)
Avatar
Yves B.
Alain D a émis l'idée suivante :
"Yves B." a écrit dans le message de news:
Bonjour,

J'avoue que je sèche sur le Pb suivant:
- J'ai une base de données dans laquelle des adresses IP sont stockées sous forme numérique;
- J'ai la formule qui permet de transformer une adresse IP en un nombre;
- Je ne parviens pas à faire la transformation: Nombre vers IP :o(

Exemple:
adresse IP = A.B.C.D
Formule correspondant = (A*256*256*256)+(B*256*256)+(C*256)+D
représentation numérique = 16 909 060

Comment reconstituer A.B.C.D à partir de 16 909 060 ???

Merci de vos pistes





nNombre est un entier = 16909060

nA, nB, nC, nD, nX sont des entiers

nX = nNombre
nD = modulo(nX, 256)
nX = (nX - nD)/256
nC = modulo(nX, 256)
nX = (nX - nC)/256
nB = modulo(nX, 256)
nX = (nX - nB)/256
nA = modulo(nX, 256)

nControle est un entier = (nA*256*256*256)+(nB*256*256)+(nC*256)+nD

Info("Nombre= " + nNombre, "A=" + nA, "B=" + nB, "C=" + nC, "D=" + nD, "Controle=" + nControle)



Bravo, et MERCI mille fois pour ta réponse (ma tête s'est dégonflée d'un seul coup) :D :D
A charge de revanche.
Avatar
titou44
Il se trouve que Yves B. a formulé :
Alain D a émis l'idée suivante :
"Yves B." a écrit dans le message de news:

Bonjour,

J'avoue que je sèche sur le Pb suivant:
- J'ai une base de données dans laquelle des adresses IP sont stockées
sous forme numérique;
- J'ai la formule qui permet de transformer une adresse IP en un nombre;
- Je ne parviens pas à faire la transformation: Nombre vers IP :o(

Exemple:
adresse IP = A.B.C.D
Formule correspondant = (A*256*256*256)+(B*256*256)+(C*256)+D
représentation numérique = 16 909 060

Comment reconstituer A.B.C.D à partir de 16 909 060 ???

Merci de vos pistes





nNombre est un entier = 16909060

nA, nB, nC, nD, nX sont des entiers

nX = nNombre
nD = modulo(nX, 256)
nX = (nX - nD)/256
nC = modulo(nX, 256)
nX = (nX - nC)/256
nB = modulo(nX, 256)
nX = (nX - nB)/256
nA = modulo(nX, 256)

nControle est un entier = (nA*256*256*256)+(nB*256*256)+(nC*256)+nD

Info("Nombre= " + nNombre, "A=" + nA, "B=" + nB, "C=" + nC, "D=" + nD,
"Controle=" + nControle)



Bravo, et MERCI mille fois pour ta réponse (ma tête s'est dégonflée d'un seul
coup) :D :D
A charge de revanche.




et les autres sentent le gasoil ?

titou44 chez freesurf.fr
Avatar
Yves B.
titou44 a exprimé avec précision :
Il se trouve que Yves B. a formulé :
Alain D a émis l'idée suivante :
"Yves B." a écrit dans le message de news:
Bonjour,

J'avoue que je sèche sur le Pb suivant:
- J'ai une base de données dans laquelle des adresses IP sont stockées sous forme numérique;
- J'ai la formule qui permet de transformer une adresse IP en un nombre;
- Je ne parviens pas à faire la transformation: Nombre vers IP :o(

Exemple:
adresse IP = A.B.C.D
Formule correspondant = (A*256*256*256)+(B*256*256)+(C*256)+D
représentation numérique = 16 909 060

Comment reconstituer A.B.C.D à partir de 16 909 060 ???

Merci de vos pistes





nNombre est un entier = 16909060

nA, nB, nC, nD, nX sont des entiers

nX = nNombre
nD = modulo(nX, 256)
nX = (nX - nD)/256
nC = modulo(nX, 256)
nX = (nX - nC)/256
nB = modulo(nX, 256)
nX = (nX - nB)/256
nA = modulo(nX, 256)

nControle est un entier = (nA*256*256*256)+(nB*256*256)+(nC*256)+nD

Info("Nombre= " + nNombre, "A=" + nA, "B=" + nB, "C=" + nC, "D=" + nD, "Controle=" + nControle)



Bravo, et MERCI mille fois pour ta réponse (ma tête s'est dégonflée d'un seul coup) :D :D
A charge de revanche.




et les autres sentent le gasoil ?

titou44 chez freesurf.fr



Sincèrement désolé.
C'est vrai que mes remerciements vont aussi à tous ceux qui ont planché sur mon post.

Petite précision: il faut déclarer les variables comme des numériques, et non comme des entiers.

Encore MERCI A TOUS et encore toutes mes excuses pour le loupé ;o)
Avatar
Romain PETIT
Yves B. avait écrit le 24/05/2007 :
Bonjour,



Bonjour,

Comment reconstituer A.B.C.D à partir de 16 909 060 ???




http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_frm/thread/a075e12efb81337b/5a8f4ed6b5354bee?#5a8f4ed6b5354bee


A+

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