[Programmazione][Java] Utility per convertire numeri esadecimali

Ho realizzato in Java una piccola utility a linea di comando che effettua la conversione di un numero decimale in uno esadecimale e viceversa. Prima di vedere come utilizzarla, vediamo brevemente cos’è un numero esadecimale, per chi non lo ricordasse ;-).

Da wikipedia: “Il sistema numerico esadecimale (spesso abbreviato come esa o hex) è un sistema numerico posizionale in base 16, cioè che utilizza 16 simboli invece dei 10 del sistema numerico decimale tradizionale. Per l’esadecimale si usano in genere simboli da 0 a 9 per le prime dieci cifre, e poi le lettere da A a F per le successive sei cifre, per un totale di 16 simboli.

Nella seguente tabella è visibile la conversione da decimale a esadecimale a binario.

Ad esempio, se abbiamo il numero esadecimale 1F5A, possiamo effettuare la conversione in decimale nel seguente modo: (1 x 16^3) + (15 x 16^2) + (5 x 16^1) + (10 x 16^0) = 8026. Inoltre, spesso un numero esadecimale viene indicato anteponendo al numero 0x, specialmente nei sistemi Unix-like, diventando ad esempio 0x1F5A.

Nel momento in cui l’utility viene avviata con il comando HCT (acronimo di Hex Conversion Tool, la classe che contiene il main), viene fornito il seguente menu:

$ java HCT
                       _____________________________
                      /                             \
                     |      Hex Conversion Tool      |
                     |             v1.0              |
                      \_____________________________/

            [ Matteo Cappelli aka roghan | matcap83@libero.it ]

[ Options ]
 1 - convert decimal to hex
 2 - convert hex to decimal
 3 - exit

Choose an option:
|

L’utility, con la relativa documentazione javadoc, è scaricabile dal seguente link:

Matteo

[GNU/Linux] Script per modificare MAC address

Ho scritto uno script bash che permette in Linux di manipolare l’indirizzo MAC di una scheda di rete, la cui operazione in gergo viene detta spoofing. Lo script può essere usato su tutte le principali distribuzioni e permette di cambiare l’indirizzo MAC con uno generato casualmente oppure con uno indicato dall’utente. Le istruzioni per eseguire lo script sono le seguenti:

Usage: macs.sh [OPTIONS]
Spoof your wired or wireless network adapter with a new MAC address.
Options:
-r <interface>: spoof an interface with a random MAC address
-s <interface> <address>: spoof an interface with a new MAC address
-o <interface>: restore an interface with the original MAC address
-v <interface>: show the MAC address and the vendor of an interface
-p <vendor>: show the MAC prefix of a vendor
-a: show the MAC address of every network interface
-h: show this help

—————————————————————-
Examples:
sh macs.sh -r eth0
sh macs.sh -s wlan1 001122334455
sh macs.sh -s eth3 00:1C:39:FB:6C:88
sh macs.sh -o eth0
sh macs.sh -p IBM
sh macs.sh -p Microsoft

Tra le funzionalità vi è anche quella di visualizzare il vendor della scheda di rete, e tutti i prefissi MAC proprietari di uno specifico vendor.

Si tratta di uno script bash, dunque deve essere lanciato con l’interprete sh e con i privilegi di root. Vediamo alcuni esempi:

# sh macs.sh -r eth1 modifica l’indirizzo dell’interfaccia eth1 con uno random
# sh macs.sh -s eth1 00:0C:29:FB:6C:4B modifica l’indirizzo di eth1 con 00:0C:29:FB:6C:4B
# sh macs.sh -o eth3 ripristina l’indirizzo MAC reale di eth3
# sh macs.sh -v eth2 visualizza l’indirizzo MAC e vendor di eth2
# sh macs.sh -a visualizza gli indirizzi MAC e vendor di tutte
# sh macs.sh -p Microsoft visualizza i prefissi MAC proprietari Microsoft

Lo script è rilasciato con licenza GNU GPL v3, ed è scaricabile a questi link:

Matteo