Afterhours
- Ci sono molti modi (2005) -
È quello che sai che ti uccide o è quello che non sai...
...
Siamo abituati a scrivere un IP in questo modo 172.16.254.1 , oppure 8.8.8.8, oppure 192.168.1.1 …
Tanti diranno che questo, a prima vista, è un IP errato: 123.0.716
…non è proprio cosi
Anche questo : 3232235521
e questo: 1.1
e questo: 0xC0A80001
….
Andiamo per gradi e vi spiego tutto…
Tutto quello che segue riguarda gli IPv4.
Cominciamo a spiegare brevemente come è formato un IP e che tipo di numeri sono.
La notazione comune è quella decimale puntata, quindi dei numeri decimali separati da punto.
Un IP ha una dimensione di 32 bit (4 byte) diviso in 4 gruppi da 8bit (1 byte) . In teoria un IP è quindi un insieme di numeri binari per comodità umana convertiti in numeri decimali con un sistema posizionale, dove il valore dipende dalla posizione. Non mi metterò a spiegarvi la conversione ma questo preambolo mi serviva per darvi un minimo di nozioni di base. Questo schema dovrebbe darvi una chiara visione di come è fatto, in fondo a questo articolo trovare tutti i link su Wikipedia per approfondire.
Quindi essendo solo dei numeri è abbastanza semplice capire che si possono convertire in altri formati
Prendiamo sempre 172.16.254.1
BInario (base2):
10101100000100001111111000000001
(questo è il vero formato di un IP, insieme a subnet mask e wildcard mask acquista il suo significato finale)
Decimale (base10):
2886794753
Esadecimale (base16):
ac10fe01
Ottale (base8):
0254.0020.0376.0001
(attenzione allo zero iniziale)
Poi ci sono alcuni formati abbreviati, quando li mostro dal vivo accade più o meno questo:
Per esempio ping 1.0.0.1 si può tranquillamente scrivere ping 1.1 , oppure ping 192.168.0.1 può diventare ping 192.168.1 – sia su Windows sia su Linux
Ora vediamo qualche caso un po’ particolare e vediamo come funziona su Windows e Linux, in alcuni casi queste conversioni vengono fatte in automatico, vediamo come si comportano :
Windows 11 – powershell
ping ip in formato esadecimale:
funziona anteponendo 0x almeno al primo numero o a tutti (0xac.0x10.0xfe.0x01) PS C:\> ping 0xac10fe01 Pinging 172.16.254.1 with ....
ping ip in formato ottale
funziona C:\>ping 0254.0020.0376.0001 Pinging 172.16.254.1 with ...
ping ip in formato decimale:
PS C:\> ping 2886794753 Pinging 172.16.254.1 with ....
ping ip in formato binario:
non risolve (nemmeno anteponendo 0b...)
Linux – bash
ping ip in formato esadecimale:
funziona anteponendo 0x almeno al primo numero o a tutti (0xac.0x10.0xfe.0x01) $ ping 0xac10fe01 PING 0xac10fe01 (172.16.254.1) 56(84) bytes of data.
ping ip in formato ottale
funziona $ ping 0254.0020.0376.0001 PING 0254.0020.0376.0001 (172.16.254.1) 56(84) bytes of data.
ping ip in formato decimale:
funziona $ ping 2886794753 PING 2886794753 (172.16.254.1) 56(84) bytes of data.
ping ip in formato binario:
non risolve (nemmeno anteponendo 0b...)
Bisogna prestare attenzione a come viene scritto l’ip per non incorrere in errori ! Per esempio:
se si antepone uno zero il significato cambia (ottale) C:\>ping 010.1 Pinging 8.0.0.1 with...
Spero di avervi fornito qualche spunto interessante, vi lascio un po’ di link per approfondire!
https://en.wikipedia.org/wiki/IPv4
https://en.wikipedia.org/wiki/IPv6
https://en.wikipedia.org/wiki/Binary_number
https://en.wikipedia.org/wiki/Decimal
https://en.wikipedia.org/wiki/Octal
https://en.wikipedia.org/wiki/Hexadecimal
https://en.wikipedia.org/wiki/Bit