2008-08-29 4 views
24

Vorrei recuperare l'indirizzo ethernet dell'interfaccia di rete utilizzata per accedere a un sito Web specifico.Come si ottiene l'indirizzo ethernet usando Java?

Come può essere fatto in Java?

Soluzione nota che la soluzione accettata di getHardwareAddress è disponibile solo in Java 6. Non sembra essere una soluzione per Java 5 a parte l'esecuzione di I (f | p) confing.

risposta

17

java.net.NetworkInterface.getHardwareAddress (metodo in Java aggiunto 6)

Deve essere chiamata sulla macchina che ti interessa - MAC non viene trasferita attraverso i confini di rete (vale a dire LAN e WAN). Se si desidera utilizzarlo su un server del sito Web per interrogare i client, è necessario eseguire un'applet che riporti i risultati all'utente.

Per Java 5 e versioni precedenti ho trovato il codice parsing output of command line tools on various systems.

+0

penso che più corretto di * "oltre i confini della rete" * è * "attraverso segmenti di rete "* – m0skit0

2

In realtà, oltre alle altre risposte giuste (JDK 6; exec 'ifconfig'), ci sono librerie basate su JNI. Java Uuid Generator (JUG) 2.0 ha il codice per alcune piattaforme. Questo funziona su JDK 1.2 e superiori di almeno (forse 1.1 anche)