Convertisseur IP vers décimal
Convertissez une adresse IP en décimal, hexadécimal, binaire et octal, ou saisissez l'un de ces nombres pour retrouver l'IP. Chaque octet est dessiné en 8 bits avec leur poids, pour que vous puissiez suivre le calcul.
Lu comme notation pointée
| Octet | 1286432168421 | Hexa |
|---|---|---|
| 198 | 11000110 | C6 |
| 128+64+4+2 × 256³ = 3 321 888 768 | ||
| 51 | 00110011 | 33 |
| 32+16+2+1 × 256² = 3 342 336 | ||
| 100 | 01100100 | 64 |
| 64+32+4 × 256 = 25 600 | ||
| 77 | 01001101 | 4D |
| 64+8+4+1 × 1 = 77 | ||
| Total | ||
| = 3 325 256 781 | ||
Une IP, ou son nombre décimal, hexa, binaire ou octal pour retrouver l'IP. Conversion dans votre navigateur ; rien n'est envoyé.
3325256781
Le même nombre dans le code
SELECT INET_ATON('198.51.100.77');3325256781SELECT '198.51.100.77'::inet - '0.0.0.0'::inet;3325256781int(ipaddress.ip_address('198.51.100.77'))3325256781ip2long('198.51.100.77')3325256781- Décimale pointée
- Décimal
- Hexa
- Octets en binaire
- Octal
- Octets en hexa
- Octets en octal
- Dans un navigateur (chacune ouvre 198.51.100.77)
- Nom DNS inverse
- En IPv6 (mappée)
- IPv4 → IPv6
Comment convertir une adresse IP en décimal ?
Multipliez les quatre nombres par 256³, 256², 256 et 1, puis additionnez : 192.168.1.1 vaut 192 × 16 777 216 + 168 × 65 536 + 1 × 256 + 1 = 3 232 235 777.
Une adresse IPv4 est un seul nombre de 32 bits écrit en quatre morceaux de 8 bits, donc la forme pointée et la forme décimale sont la même valeur. La documentation de MySQL prend 10.0.5.9 = 167773449 comme exemple.

N'importe quelle forme en entréePointée, décimale, hexa, binaire, octale ou URL : le champ les lit toutes.Bits et poidsChaque 1 ajoute son poids : 128 + 64 + 4 + 2 = 198.× 256³, 256², 256, 1Chaque octet multiplié par son poids, puis le total.Toutes les formes en sortieHexa, binaire, octal et les URL qu'acceptent les navigateurs, chacune à copier.Le nombreL'adresse entière en un seul nombre de 32 bits, prête à copier, avec le type d'adresse.Comment convertir un nombre décimal en adresse IP ?
Divisez par 16 777 216, puis divisez le reste par 65 536, puis par 256 : les trois quotients et le dernier reste sont les quatre nombres, donc 3232235777 correspond à 192.168.1.1.
Saisissez le nombre dans le convertisseur et il fait de même, avec en plus l'hexa, le binaire, l'octal et les formes qu'acceptent les navigateurs. Les nombres au-delà de 4 294 967 295 ne sont pas des adresses IPv4 ; le convertisseur les lit comme des nombres IPv6 et le signale.
3 232 235 777÷ 16 777 216=192reste 11 010 30511 010 305÷ 65 536=168reste 257257÷ 256=1reste 11÷ 1=1reste 0192.168.1.1
Comment convertir une adresse IP en binaire ?
Écrivez chacun des quatre nombres sur 8 bits avec les poids 128, 64, 32, 16, 8, 4, 2 et 1 : 192 vaut 128 + 64, donc 11000000, et 192.168.1.1 s'écrit 11000000.10101000.00000001.00000001.
Parcourez les poids depuis la gauche : écrivez 1 et soustrayez quand le poids tient, sinon écrivez 0. Pour 168 : 128 tient (reste 40), 64 non, 32 tient (reste 8), 16 non, 8 tient, donc 10101000. Pour revenir du binaire, additionnez les poids des 1.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | ||
|---|---|---|---|---|---|---|---|---|---|
| 192 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 128 + 64 |
| 168 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 128 + 32 + 8 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
11000000.
Comment convertir une adresse IP en hexadécimal ?
Coupez les 8 bits de chaque octet en deux moitiés de 4 et écrivez chaque moitié en un chiffre hexa : 192 vaut 1100 0000, soit C0, donc 192.168.1.1 s'écrit 0xC0A80101.
L'hexa est aussi la façon dont l'IPv6 écrit une adresse IPv4 intégrée : ::ffff:c0a8:101 correspond à 192.168.1.1. Les navigateurs acceptent le nombre hexa comme hôte : http://0xC0A80101/ ouvre 192.168.1.1.
11000000C010101000A8000000010100000001010xC0A80101
4 bits = 1 chiffre hexa
Pourquoi http://3232235777 ouvre-t-il 192.168.1.1 ?
Parce que les navigateurs lisent un hôte composé uniquement de nombres comme une adresse IPv4 sous l'une des anciennes formes d'inet_aton, un seul nombre décimal compris, puis chargent l'adresse pointée.
Chaque partie peut être décimale (le standard URL), hexa avec 0x ou octale avec un 0 de tête, et avec moins de quatre parties la dernière remplit les octets restants. Ainsi http://192.168.1/ ouvre 192.168.0.1, pas 192.168.1.1. ping et curl acceptent les mêmes formes.
Les nombres au-delà de 32 bits, un 8 ou un 9 dans une partie qui commence par 0, et une cinquième partie sont refusés.
| Saisi dans la barre d'adresse | Ouvre |
|---|---|
http://3232235777/ | 192.168.1.1 |
http://0xC0A80101/ | 192.168.1.1 |
http://0300.0250.1.1/ | 192.168.1.1 |
http://127.1/ | 127.0.0.1 |
http://192.168.1/ | 192.168.0.1 |
http://4294967296/ | Refusé |
http://09/ | Refusé |
http://192.0.2.1.5/ | Refusé |
Pourquoi les autres écritures d'une adresse IP comptent-elles pour la sécurité ?
Parce qu'un filtre qui compare les adresses comme du texte peut être trompé : 2130706433, 0x7f.1, 127.1 et ::ffff:127.0.0.1 valent tous 127.0.0.1, donc les filtres doivent comparer la valeur numérique, pas la chaîne.
L'OWASP cite ces encodages parmi les moyens de contourner les défenses contre le SSRF. Des bibliothèques ont eu ce bogue : les paquets npm netmask et ip, ipaddress de Python et le paquet net de Go ont tous, à un moment, mal lu des zéros de tête ou d'autres formes, et ont été corrigés depuis.
Analysez avec un lecteur strict, convertissez en nombre, puis comparez des plages. Bloquez aussi les adresses IPv4 mappées des plages bloquées.
deny 127.0.0.1
Comparé comme texte
127.0.0.1bloqué
2130706433passe
0x7f.1passe
127.1passe
::ffff:127.0.0.1passe
Comparé comme nombre
127.0.0.12130706433 · bloqué
21307064332130706433 · bloqué
0x7f.12130706433 · bloqué
127.12130706433 · bloqué
::ffff:127.0.0.12130706433 · bloqué
Comment convertir une adresse IPv6 en décimal ?
De la même façon, avec huit groupes de 16 bits : 2001:db8::1 vaut 42540766411282592856903984951653826561, un nombre de 39 chiffres au plus qui exige BigInt en JavaScript.
Il existe 2^128 adresses IPv6. Les nombres JavaScript ne représentent exactement les entiers que jusqu'à 2^53 − 1, donc l'arithmétique ordinaire arrondit les valeurs IPv6 sans prévenir. int(ipaddress.ip_address(…)) en Python est exact.
2001:db8::1
42540766411282592856903984951653826561
exact (BigInt)
42540766411282592856903984951653826560
Number() : arrondi après 2^53
Comment convertir des adresses IP en nombres dans le code et les bases de données ?
Utilisez les fonctions propres à la plateforme avec un type non signé : INET_ATON() de MySQL dans un INT UNSIGNED, la soustraction de inet dans PostgreSQL, int(ipaddress.ip_address(…)) en Python, et >>> 0 après les décalages en JavaScript.
Un entier signé de 32 bits ne peut pas contenir les adresses à partir de 128.0.0.0 : << en JavaScript donne -1062731519 pour 192.168.1.1, et ip2long() de PHP devient négatif sur les versions 32 bits. Pour l'IPv6, MySQL utilise INET6_ATON() et VARBINARY(16).
› SELECT INET_ATON('192.168.1.1'), INET_NTOA(3232235777); 3232235777 | 192.168.1.1
MySQL 8.4
› SELECT '192.168.1.1'::inet - '0.0.0.0'::inet, '0.0.0.0'::inet + 3232235777; 3232235777 | 192.168.1.1
PostgreSQL 16
› import ipaddress int(ipaddress.ip_address('192.168.1.1')), ipaddress.IPv4Address(3232235777) (3232235777, IPv4Address('192.168.1.1'))
Python ipaddress
› '192.168.1.1'.split('.').reduce((n, o) => (n << 8) | +o, 0) >>> 0 3232235777
JavaScript
› echo ip2long('192.168.1.1'), ' ', long2ip(3232235777); 3232235777 192.168.1.1
PHP 8
Questions fréquentes
Que vaut 192.168.1.1 en décimal ?
Quelle est la plus grande valeur décimale d'une adresse IPv4 ?
Comment reconvertir 3232235777 en adresse IP ?
Que signifie un zéro de tête comme 010 dans une adresse IP ?
Pourquoi 192.168.1 ouvre-t-il 192.168.0.1 ?
Comment convertir une adresse IP en binaire à la main ?
Comment stocker des adresses IP sous forme de nombres dans MySQL ?
Pourquoi mon nombre IP est-il négatif en JavaScript ou en PHP ?
Un convertisseur IP peut-il convertir une adresse IPv6 en décimal ?
L'adresse http://0x7f000001/ équivaut-elle à 127.0.0.1 ?
Outils associés
IPv6 vers IPv4
Trouvez l'adresse IPv4 dans une adresse IPv6 : mappée, NAT64, 6to4, Teredo et ISATAP, bit par bit
IPv4 vers IPv6
Toutes les formes IPv6 d'une adresse IPv4 : mappée, NAT64 et 6to4, chacune marquée en usage ou rare
Compression IPv6
Abrégez ou étendez des adresses IPv6 selon la RFC 5952 et voyez quelle règle a retiré chaque zéro
Quelle Est Mon IP
Votre IP publique IPv4 et IPv6 en un coup d'œil, avec le réseau, la localisation et un test VPN
Test IPv6
Testez votre IPv6, le choix de votre navigateur et si un site a l'IPv6
Calculateur de sous-réseau
Réseau, broadcast, hôtes utilisables et masques de tout bloc IPv4 ou IPv6, avec VLSM, découpage et sous-réseaux cloud
DNS Inversé
Trouvez les hostnames associés à n'importe quelle adresse IP via les enregistrements PTR
Recherche DNS
Tous les enregistrements DNS depuis les serveurs du domaine, à côté du cache de Google et Cloudflare