Dobivanje MAC adresa na Javi

1. Uvod

U ovom uputstvu koristit ćemo Javu za dobivanje MAC adresa lokalnog računala.

MAC adresa jedinstveni je identifikator za karticu fizičkog mrežnog sučelja.

Pokrivat ćemo samo MAC adrese, ali za općenitiji pregled mrežnih sučelja pogledajte Rad s mrežnim sučeljima u Javi.

2. Primjeri

U našim primjerima u nastavku koristit ćemo java.net.NetworkInterface i java.net.InetAddress Apis.

2.1. Strojni Localhost

Prvo, uzmimo MAC adresu za localhost našeg stroja:

InetAddress localHost = InetAddress.getLocalHost (); NetworkInterface ni = NetworkInterface.getByInetAddress (localHost); bajt [] hardwareAddress = ni.getHardwareAddress (); 

Kao NetworkInterface#getHardwareAddress vraća niz bajtova, možemo formatirati rezultat:

String [] hexadecimal = novi niz [hardwareAddress.length]; for (int i = 0; i <hardwareAddress.length; i ++) {hexadecimal [i] = String.format ("% 02X", hardwareAddress [i]); } Niz macAddress = String.join ("-", heksadecimalni);

Primijetite kako mi formatirajte svaki bajt u polju u heksadecimalni broj pomoću String # format.

Nakon toga sve formatirane elemente možemo pridružiti znakom „-“ (crtica).

2.2. Lokalni IP

Drugo, uzmimo MAC adresu za zadanu lokalnu IP adresu:

InetAddress localIP = InetAddress.getByName ("192.168.1.108"); NetworkInterface ni = NetworkInterface.getByInetAddress (localIP); bajt [] macAddress = ni.getHardwareAddress ();

Opet, primijetite kako dobivamo niz bajtova za MAC adresu.

2.3. Sva mrežna sučelja

Na kraju, uzmimo MAC adrese za sva mrežna sučelja na našem stroju:

Nabrajanje networkInterfaces = NetworkInterface.getNetworkInterfaces (); while (networkInterfaces.hasMoreElements ()) {NetworkInterface ni = networkInterfaces.nextElement (); bajt [] hardwareAddress = ni.getHardwareAddress (); if (hardwareAddress! = null) {String [] hexadecimalFormat = novi niz [hardwareAddress.length]; for (int i = 0; i <hardwareAddress.length; i ++) {hexadecimalFormat [i] = String.format ("% 02X", hardwareAddress [i]); } System.out.println (String.join ("-", heksadecimalni format)); }}

Kao getNetworkInterfaces vraća i fizičko i virtualno sučelje, moramo filtrirati virtualna sučelja.

To možemo učiniti, na primjer, provjerom nule getHardwareAddress.

3. Zaključak

U ovom smo brzom vodiču istražili različite načine dobivanja MAC adresa za lokalni stroj.

Kao i obično, sav izvorni kod s primjerima iz ovog vodiča možete pronaći na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found