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

Publié par Fred dans tuto

J'suis d'accord avec Do, PHP est deja un moteur de template.
Disons que le moteur de template permet de separer le code de la vue pour les debutants qui ont besoin qu'on leur impose des bornes...

Publié par romainN dans tuto

Bonjour,

Super tuto bravo! Je suis sur Wordpress 3.5 et 1and1 et la ligne HTML que je dois modifier est prsente dans plusieurs php et elle comprend des echo:

echo \\ dans le fichier wp-...

Publié par fffffff dans CMS

tesffff

Publié par fobec dans java

La boucle de lecture est corrigée et prend en compte l'état pause. Sympa d'avoir signaler l'erreur

Publié par piranhas dans java

bonjour, je veux te signaler que la piece jointe est fausse car il n\'y pas de liaison entre le modele et la vue, toutes le information passe par le controlleur.