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

Publié par Fobec dans CMS

Norton emet une alerte de type 'Suspicious.Cloud', hasard de compilation ou menace serieuse ? Faites attention en installant le logiciel.<br>Merci JM de l'avoir signaler.

Publié par hisy dans java

Merci pour le script mais si un champ text contient un ";" ...

Publié par fobec dans CMS

fff - f,f,fklmf @@ f,kflf,k ??? !!! fff f f insert

Publié par Kezouille dans java

Bonjour Axel,

Merci pour ce petit guide qui m'a bien aide dans ma tache. En effet j'ai developpe une petite application afin de detecter l'ajout d'un fichier une image dans un repertoire et de...

Publié par mohamed dans php5

code comment publier tous les ficher en php5 et html5