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 4526 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par gilles dans logiciel

Bonjour,

j'utilise quotidiennement votre excellent logiciel complet et ergonomique.

Mais depuis quelques jours j'ai un probleme il recherche indefiniment resolution du nom de l'hote.

Publié par ric dans CMS

c\'est la première fois que j\'utilise ce logiciel

Publié par Patrice dans CMS

Concernant la commande ShellExecute :

Si vous voulez lancer un programme dont le nom est contenu dans une propriété text,
caption, items bref d\'un string ... n'oubliez pas de tran...

Publié par jean-francois dans logiciel

Bonjour,
je suis tombe par hasard sur cette page que je trouver super. je cherche a faire quelque chose comme ca sur mon site. Et je galere depuis des jours... :(
Est-ce que tu partages le...

Publié par Axel dans java

L'astuce de la conversion en gris se situe dans imagedst.
Le BufferedImage imagesrc contient l'image en couleur, imagedst est une image cree en nuance de gris. Lorsque l'on copie l'image colorisee...