88 votes

Étrange notation décimale sans point de l'adresse IP... Comment cela fonctionne-t-il ?

Plus tôt dans la journée, je pensais avoir une URL dans mon presse-papiers, mais j'avais en fait quatre nombres entiers à 9 chiffres copiés d'une feuille de calcul, qui étaient des numéros d'identification d'un système propriétaire. Sans aucun rapport avec la tâche à accomplir. J'ai collé ces chiffres dans Firefox et j'ai été surpris de constater qu'une page était effectivement chargée. J'ai vu des notations décimales sans points de IPv4 avant, mais ce long numéro est quelque chose de beaucoup, beaucoup plus grand.

714687644714805209715128610715964400 (collez un HTTP:// devant)

Comment cela fonctionne-t-il ? Tous les convertisseurs décimal -> IPv4 que j'ai trouvés sur Internet considèrent tous que c'est une entrée invalide. Si je prends l'adresse IPv4 qu'il charge réellement, et que j'effectue les mêmes calculs pour la convertir en décimal sans points, j'obtiens un nombre beaucoup plus petit.

J'ai lu que ping peut accepter des mots-dièses et effectuer certaines conversions, mais il ne peut pas convertir ce nombre en une adresse IP. IPv6 est hors de question car cet hôte n'a pas de connectivité IPv6.

C'est quoi cette folie ? Ça nous a rendu perplexes, moi et mes collègues.

Edit : C'est de nouveau en ligne maintenant.

92voto

peanut_butter Points 1802

C'est une question très intéressante, qui m'a pris un peu de temps à comprendre. La réponse courte est que les 32 derniers bits du nombre sont 3660944368 (en décimal, qui peut être trouvé par 714687644714805209715128610715964400 mod 2^32 )

Il s'agit de la valeur décimale de l'adresse IPv4. 218.53.147.240 que l'on peut trouver en le convertissant en base 256. 3660944368 = 218*(256^3)+53*(256^2)+147*(256)+240 analogue à l'écriture d'un nombre en décimal (base 10). Par exemple 234 = 2*10^2+ 3*10 + 4 .

Comme le souligne @chritohnide, chaque section des adresses IPv4 en pointillés est appelée un octet car elle représente 8 chiffres binaires. Il convient également de noter que les différents formats d'adresses IPv4 (tels que le décimal pointé ou le décimal pur) ne sont que des façons différentes de représenter le nombre binaire de 32 bits.

Les adresses IPv4 étant des nombres de 32 bits, seuls les 32 derniers bits du nombre sont utilisés pour résoudre l'adresse. La raison pour laquelle cela est vrai n'est pas aussi évidente. Comme d'autres l'ont souligné, le numéro complet ressemble étrangement à une adresse IPv6 en décimal, mais ce n'est pas une adresse valide.

En regardant le Spécification Teredo (voir 4. Adresses Teredo ), l'IPv4 du client occupe les 32 derniers bits de l'adresse IPv6, mais le préfixe du numéro ne correspond pas à la spécification Teredo (voir aussi wikipedia ).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X