Vari volti di un indirizzo


Gli indirizzi IPv4 hanno un’ampiezza di 32 bit e sono molto spesso scritti nella forma a.b.c.d dove al posto delle lettere ci sono numeri decimali da 0 255. Questa forma prende generalmente il nome di IPv4 dotted-decimal notation.

Ma non è l’unico modo per indicare un indirizzo IP, ce ne sono molti altri che possono essere utilizzati per offuscare gli indirizzi o per aggirare i controlli.

32 bit possono essere considerati tutti assieme, oppure a gruppi di 8 bit; in entrambi i casi i numeri possono essere scritti in ottale, decimale o esadecimale.

Generalmente, le funzioni di di sistema riconoscimento degli indirizzi IPv4 sono in grado di decodificare tutte queste notazioni.

Prendiamo ad esempio 8.8.4.4, uno dei due DNS pubblici di Google, tutti questi sono modi validi per rappresentare quell’indirizzo IPv4:

134743044
0x8080404
01002002004
010.010.04.04
010.010.04.04
0x8.0x8.0x4.0x4
0x000000008.0x000000008.0x000000004.0x000000004
0x8.0x8.0x4.4
0x8.0x8.4.4
0x8.8.4.4
8.0×8.0×4.0x4
8.8.0×4.0×4
8.8.4.0×4
010.010.04.4
010.010.4.4
010.8.4.4
8.010.04.04
8.8.04.04
8.8.4.04
0x8.0x8.1028
0x8.525316
010.010.1028
010.525316
0x8.010.1028
010.0×8.1028

In linea generale, un numero viene considerato ottale se inizia con zero e esadecimale se inizia con 0x

A questo si aggiunge la possibilità di raggruppare a destra i byte nei formati a.b.cd e a.bcd

Nel caso di a.b.cd, a e b sono numeri a 8 bit e cd è un numero a 16 bit;  nel caso di a.bcd, a è un numero a 8 bit e bcd è un numero a 24 bit. Questi sono retaggi di quando le classi A, B e C degli indirizzi IP avevano un significato e permettevano di semplificare la notazione degli indirizzi. Ovviamente anche qui si possono rappresentare i numeri in decimale, ottale o esadecimale.

Questo sopra è il motivo per il quale se (ad esempio) fate un ping ad un indirizzo di cui avete tralasciato un punto, il programma pinga qualcosa (ma non è detto che tornino delle risposte).

Questa varietà di notazioni è dovuta principalmente alla funzione inet_aton() presente come copia e incolla della versione originale BSD in molte implementazioni della libreria TCP/IP.

,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *