Trasformare un IP in formato dotless (hex)

Generalmente gli IP si presentano in forma 'dotted-decimal'. Vedremo come è possibile poche, semplici righe perl, codificare un Ip in formato dotless (tradotto alla lettera: senza punteggiatura).

Le alternative sono: dword, words, octal, hex. Noi vedremo come trasformarlo nell'ultimo formato, il più usato e godibile. Mettiamo il caso che l'ip da trasformare sia quello di: www.linux.it (80.116.202.12).
Creiamo un nuovo file con il nostro editor preferito (esempio VIM), e scriviamo le seguenti righe:
#!/usr/bin/perl
@prova = split(/\./, $ARGV[0]);
$one = $prova[0] * 16777216;
$two = $prova[1] * 65536;
$tree = $prova[2] * 256;
$total= $one + $two + $tree + $prova[3];
print "$total\n";


Il funzionamento è molto semplice. $ARGV[0] è il primo argomento passato in input al programma (si presume sia l'ip in questo formato: XXX.XXX.XXX.XXX).
Verrà creato l'array dove saranno posizionati gli oggetti (le classi di IP : XXX).
Le operazioni sono semplicissime:
1. moltiplicare la prima classe per 16777216 (256 * 256 * 256)
2. moltiplicare la seconda per 65536 (256 * 256)
3. moltiplicare la terza per 256
4. addizionare il tutto, e stampare la nuova variabile.

Nel nostro caso il risultato sarà: 1051787627
Proviamo http://1051787627/

Privacy Policy