Get MacAddress

มีงานอยู่ชิ้นหนึ่งที่ผมต้องเก็บรายละเอียดของ Mac Address จากเครื่องที่ใช้งานโปรแกรมอยู่ ด้วยเสาะหาไปทั่วก็ไปเจอที่ How do I get MAC address of a host? ซึ่งใช้ได้ผลดีครับ แต่ใช้ได้กับ JDK 1.6 นะครับ ซึ่งก็ไม่ใช่ปัญหาเพราะ งานที่ผมทำก็ใช้ JDK 1.6 เหมือนกัน เลยมา Note ไว้เผื่อกันลืม

/**
 * File Name : GetMacAddress.java
 * Created Date : Nov 16, 2009 : 5:11:33 PM
 */
package com.fun4station.example;

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

/**
 * @Author Supot Saelao
 * @Version 1.0
 */
public class GetMacAddress {
	public static void main(String[] args) {
		try {
			String ip = "10.25.106.70";
			InetAddress address = InetAddress.getByName(ip);		
			
			//Get NetworkInterface for the current host and then read the hardware address.
			NetworkInterface ni = NetworkInterface.getByInetAddress(address);
			String str = "";
			if (ni != null) {
				byte[] mac = ni.getHardwareAddress();
				if (mac != null) {
					//Extract each array of mac address and convert it to hexa 
					//with the following format 08-00-27-DC-4A-9E.					 
					for (int i = 0; i < mac.length; i++) {
						str += String.format("%02X%s", mac[i],(i < mac.length - 1) ? "-" : "");
					}	
					System.out.println(" Mac Address of : "+ip+" is : "+str);
				} else {
					System.out.println("Address doesn't exist or is not accessible.");
				}
			} else {
				System.out.println("Network Interface for the specified address is not found.");
			}			
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (SocketException e) {
			e.printStackTrace();
		}
	}
}

ข้อมูลจาก
How do I get MAC address of a host?
String.format

  1. No comments yet.

  1. No trackbacks yet.