Identifier un poste sur un LAN avec sa Mac Address

En s'appuyant sur les couches réseau du système d'exploitation, JAVA offre de nombreuses possibilités. Quelque soit l'OS, un poste peut être identifié sur un LAN à partir des données suivantes:
- identifiant du poste sur le réseau,
- adresse IP,
- Mac Address.
La fonction getMacAddress() retourne la Mac Address du poste aussi bien sous Windows que sous Linux.

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

/**
 * Identifier un poste sur un LAN avec sa Mac Address
 * @author fobec 2011
 */
public class NetworkHardware {

    public static String getMacAddress() {

        try {
            InetAddress ia = InetAddress.getLocalHost();

            System.out.println("nom sur le reseau : " + ia.getCanonicalHostName());
            System.out.println("adresse ip : " + ia.getHostAddress());
            System.out.println("reseau local : " + ia.isSiteLocalAddress());

            NetworkInterface ni = NetworkInterface.getByInetAddress(ia);
            System.out.println("interface reseau : "+ni.getDisplayName());
            byte[] mac = ni.getHardwareAddress();

            StringBuilder macaddress = new StringBuilder();
            for (int i = 0; i < mac.length; i++) {
                macaddress.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
            }           
            return macaddress.toString();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (SocketException e) {
            e.printStackTrace();
        }
        return "";
    }

    public static void main(String args[]) {
        System.out.println("la Mac adresse du poste : " +NetworkHardware.getMacAddress());
    }
}

Exemple de console
nom sur le reseau : AXEL
adresse ip :192.168.2.114
reseau local :true
interface reseau :Miniport de pont MAC - Miniport d'ordonnancement de paquets
la Mac adresse du poste : 02-B1-43-DC-75-A1

Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour17/05/2011
VisualisationVu 410 fois
PublicInternaute
CategorieJAVA - Sources - Reseau
Auteur de l'article
axel axel
connecté le 20/09/2011
28 ans - France Sud-Est
41 articles dans la section
Contacter l'auteur
Partager l'article