MAC Address Java
MAC Address Java
Il campo Type/lenght, in posizione 13 e 14, viene copiato in una stringa (righe 16÷19). Per raggiungerlo biso-
gna moltiplicare per 3 l’indice 13 e 14 (in una sequenza i byte sono spaziati e occupano tre caratteri).
Una volta trasformato in stringa esadecimale (su quattro caratteri), il campo Type/lenght va trasformato in nu-
mero decimale per poterlo confrontare con l’MTU di Ethernet (1500) per discriminare il tipo di pacchetto.
A tal scopo è stata scritta una funzione htoi() che, presa in ingresso una stringa esadecimale, restituisce il nu-
mero decimale equivalente. Il corpo della funzione si trova alle righe 46÷57 e il prototipo a riga 04.
Infine, per sapere se il pacchetto è un 802.3 SNAP o 802.3 LLC si legge il byte a indice 15 e lo si confronta con
la stringa esadecimale “aa” (righe 30÷32).
3 Dominio di broadcast
Gli indirizzi fisici delle LAN a 6 byte (MAC address) sono univoci su scala
mondiale e memorizzati permanentemente nella ROM della scheda di rete
dal produttore secondo lo schema OUI/n. di serie: i primi tre byte sono
l’indentificativo univoco su base mondiale assegnato dall’IEEE ad ogni
produttore, mentre il n. di serie è deciso autonomamente dal costruttore
per individuare la singola scheda commercializzata.
Scrivere un programma in linguaggio Java che legge gli indirizzi MAC delle interfacce di rete installate sulla mac-
china.
I due bit LSB del primo byte dell’OUI hanno un significato speciale e deter-
minano il tipo di pacchetto MAC. Sono sottratti quindi alla codifica OUI,
motivo per cui il primo byte di un OUI del produttore dovrebbe essere
sempre pari e dovrebbe essere sempre pari il settimo byte di un pacchetto
Ethernet:
tipi di indirizzi MAC
47464544 43424140 39383736 3534 3332 31302928 27262524 2322 21201918 17161514 13121110 9 8 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
OUI 0 U/L I/G OUI 1 OUI 2 serial number 0 serial number 1 serial number 2
1 1 1 1 1 1
3 Dominio di broadcast 11
Paolo Ollari CORSO DI SISTEMI E RETI - Vol. 2 © Zanichelli 2013 per Informatica