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
Lire la suite
Conversion d'un nombre entier 32 bits en IP »
Publié par
lami20j -
Dernière mise à jour le 10 novembre 2009 à 16:07 par marlalapocket