Publié le 17/05/2011
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
2 commentaires

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.

Obtenir l'Adresse MAC du poste

L'adresse MAC aussi appelée adresse physique est un numéro unique que l'on utilise pour identifier un périphérique sur un réseau. Par exemple, lorsque l'on souhaite filtrer les connexions sur sa borne WIFI, c'est l'adresse MAC qui sert d'identifiant à chaque périphérique.
La MAC Mac Address est une suite de 6 octets représentée sous la forme hexadécimale.
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("X%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 Mac Address

Le poste sur lequel s’exécute la class ci-dessus est relié à un réseau local dont la zone verte est définit par le sous-réseau 192.168.2.x
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

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar BOKOMBEJEAN

Publié par BOKOMBEJEAN

le 31/07/2015 à 15:12:08

code source excellente,
maintenant comment l'afficher dans une zone de texte ou un champ de texte?

avatar Axel

Publié par Axel

le 31/07/2015 à 17:11:44

le resultat de la fonction getMacAddress() est de type String,
ainsi pour afficher l'adresse MAC dans une JLabel

String macAddress=NetworkHardware.getMacAddress();
label.setText(macAddress);

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
17/05/2011
Visualisation
vu 4457 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par fffffff dans CMS

tesffff

Publié par Fobec dans logiciel

prise en charge du format ipV6. L'api est compatible avec tous les ip qu'elles soient au format ipV4 ou ipV6.

Publié par revente lmnp dans logiciel

J'aimerais avoir plus d'informations sur cette article, si quelqu'un peux m'en donnee d'avantage, je vous en remercie d'avance.

Publié par BOKOMBEJEAN dans java

code source excellente,
maintenant comment l'afficher dans une zone de texte ou un champ de texte?

Publié par lamardiallo48 dans java

trop bon ton code ca m'a beaucoup aide. Merci