Home > Jaringan Komputer, Pemrograman Java, Sistem Terdistribusi > Program Java: Membaca MAC Address

Program Java: Membaca MAC Address


Bagaimana mendapatkan MAC addres dari suatu interface jaringan, Ethernet card misalnya? Java (1.6 ke atas) menghadirkan metode bernama getHardwareAddress() yang disediakan oleh kelas NetworkInterface dalam paket java.net. MAC Address yang dihasilkan masih dalam bentuk array BYTE, sehingga harus dikonversi ke bentuk HEXA agar sesuai dengan standard yang selama ini berlaku.

Silakan tulis dan coba kelas MACAddress di bawah ini:

/*
 * Program kecil untuk mendapatkan alamat hardware
 * dari suatu interface ber-IP address.
 * untuk mencoba program ini, pastikan interface aktif.
 */
package netprog2010;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;

public class MACAddress {

    public static void main(String[] args) {
        try {
            InetAddress address = InetAddress.getLocalHost();
            //InetAddress address = InetAddress.getByName("172.16.1.8");

            //Ambil NetworkInterface dari host dan baca alamat hardware (MAC)nya
            NetworkInterface ni = NetworkInterface.getByInetAddress(address);
            if (ni != null) {
                byte[] mac = ni.getHardwareAddress();
                if (mac != null) {
             
                    //Ekstrak setiap array dari mac dan konversi ke hexa
                    //mengikuti format 08-00-27-DC-4A-9E.
                    System.out.print("MAC Address dari interface " + address + " adalah ");
                    for (int i = 0; i < mac.length; i++) {
                        System.out.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "");
                    }
                    System.out.println();
                } else {
                    System.out.println("Address tidak ada atau tidak dapat diakses.");
                }
            } else {
                System.out.println("Network Interface untuk alamat tersebut tidak ditemukan.");
            }
        } catch (UnknownHostException e) {
            //e.printStackTrace();
        } catch (SocketException e) {
            //e.printStackTrace();
        }
    }
}

Contoh hasil eksekusi adalah:

MAC Address dari interface d3tmj-PC/172.16.1.8 adalah 00-21-CC-4C-E3-9F

OK, semoga bermanfaat🙂

  1. supriyadi
    23 May 2012 at 12:51 am

    kalau pake php bisa nggak….gimana scriptnya…?
    terima kasih

  2. 5 June 2013 at 10:35 pm

    kyknya mac.length nya keluar 0, jadi g akan pernah masuk ke for, tp bila diganti mac.toString().length() masuk ke for tapi keluar error Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 0, karena mungkin mac[0] g ada, gimana gan ada pencerahan ga di source diatas?? ane newbie ini, g tw…

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: