Menu
Donnez votre avis

Conversion d'une adresse IP en entier 32 bits

Posez votre question
Nous allons faire un ping sur commentcamarche.net, pour récupérer l'adresse IP (voir en gras)

$ ping -c1 commentcamarche.net
PING commentcamarche.net (194.169.240.130) 56(84) bytes of data.
64 bytes from www.commentcamarche.org (194.169.240.130): icmp_seq=1 ttl=53 time=53.2 ms

--- commentcamarche.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 53.230/53.230/53.230/0.000 ms


Nous faisons la conversion d'IP en utilisant les opérateurs de traitement de bits.
Le nombre est sur 32 bits. Donc pour obtenir l'entier, nous décalons à gauche chaque octet. L'opérateur | permet de mettre les bits à un.


Voici la représentation en binaire

11000010 00000000 00000000 00000000  - 3254779904 (194 << 24)
00000000 10101001 00000000 00000000  - 11075584   (169 << 16) |
00000000 00000000 11110000 00000000  - 61440      (240 <<  8) |
00000000 00000000 00000000 10000010  - 130
-----------------------------------
11000010 10101001 11110000 10000010   - 3265917058  (3254779904|11075584|61440|130)


Et voici la commande permettant de convertir l'IP en entier sur 32 bits.
$ echo 194.169.240.130 | perl -ne 's/(\d+)\.(\d+)\.(\d+)\.(\d+)/$1<<24|$2<<16|$3<<8|$4/e;print'
3265917058


Voici le résultat du ping utilisant le nombre entier au lieu de l'IP classique
$ ping -c1 3265917058
PING 3265917058 (194.169.240.130) 56(84) bytes of data.
64 bytes from 194.169.240.130: icmp_seq=1 ttl=53 time=53.0 ms

--- 3265917058 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 53.034/53.034/53.034/0.000 ms
Jean-François Pillou

Cet article est régulièrement mis à jour par des experts sous la direction de Jean-François Pillou, fondateur de CommentCaMarche et directeur délégué au développement numérique du groupe Figaro.

En savoir plus sur l'équipe CCM

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de Utilisateur anonyme