IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupérer l'adresse Mac


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut Récupérer l'adresse Mac
    Bonjour,

    Je suis entrain de développer une application extranet.

    Pour renforcer la sécurité de l'application, il m'a été demandé de faire une vérification login/pass/mac du client avant qu'il se connecte.

    Les adresses mac des clients sont stockées dans la base de données.

    Le problème que j'ai est comment je peux récupérer leurs adresse mac pour faire la vérification avec celles stockées dans ma base de données.

    En cherchant un petit peu dans le net, j'ai trouvé ce code mais il n'a pas l'air de bien marcher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    function returnMacAddress() {
        // This code is under the GNU Public Licence
        // Written by michael_stankiewicz {don't spam} at yahoo {no spam} dot com
        // Tested only on linux, please report bugs
     
        // WARNING: the commands 'which' and 'arp' should be executable
        // by the apache user; on most linux boxes the default configuration
        // should work fine
     
        // Get the arp executable path
        $location = `which arp`;
        // Execute the arp command and store the output in $arpTable
        $arpTable = `$location`;
        // Split the output so every line is an entry of the $arpSplitted array
        $arpSplitted = split("\n",$arpTable);
     
        // Get the remote ip address (the ip address of the client, the browser)
        $remoteIp = $_SERVER['REMOTE_ADDR'];
        // Cicle the array to find the match with the remote ip address
        foreach ($arpSplitted as $value) {
            // Split every arp line, this is done in case the format of the arp
            // command output is a bit different than expected
            $valueSplitted = split(" ",$value);
            foreach ($valueSplitted as $spLine) {
                if (preg_match("/$remoteIp/",$spLine)) {
                    $ipFound = true;
     
                }
                // The ip address has been found, now rescan all the string
                // to get the mac address
                if ($ipFound) {
                    // Rescan all the string, in case the mac address, in the string
                    // returned by arp, comes before the ip address
                    // (you know, Murphy's laws)
                    reset($valueSplitted);
                    foreach ($valueSplitted as $spLine) {
                        if (preg_match("/[0-9a-f][0-9a-f][:-]".
                        "[0-9a-f][0-9a-f][:-]".
                        "[0-9a-f][0-9a-f][:-]".
                        "[0-9a-f][0-9a-f][:-]".
                        "[0-9a-f][0-9a-f][:-]".
                        "[0-9a-f][0-9a-f]/i",$spLine)) {
                            return $spLine;
                        }
                    }
                }
                $ipFound = false;
            }
        }
        return false;    
    }

    Si vous avez des suggestions je suis preneur.
    Merci

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    A ma connaissance, tu n'as pas la possibilité de récupérer l'adresse MAC avec PHP.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    Alors y a-t-il un autre moyen pour la récupérer ?

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Ton script doit pouvoir marcher mais il suppose que tu sois sur un serveur dédié (linux) où l'utilisateur apache à les droit d'éxecuter which et arp. C'est expliqué dans le script.

    Au passage une sécurité sur l'adresse mac ne sert à rien puisque sous linux ça se change en une ligne de commande (MAC adress spoofing pour un peu de culture).
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    Ton script doit pouvoir marcher mais il suppose que tu sois sur un serveur dédié (linux) où l'utilisateur apache à les droit d'éxecuter which et arp. C'est expliqué dans le script.
    En fait l'application va tourner sur un serveur Windows avec php/mysql/apache installé dessus.

    Au passage une sécurité sur l'adresse mac ne sert à rien puisque sous linux ça se change en une ligne de commande (MAC adress spoofing pour un peu de culture).
    En fait, les clients de cette application sont des agents de la campagnie. L'administrateur réseau a les adresses MAC de chaque agent et sont stockées dans une base de données. Donc à chaque tentative de connexion à l'application, il faudra vérifier en plus du login/pass l'adresse MAC. Si l'agent change son adresse MAC, il pourra pas se connecter.

  6. #6
    Nb
    Nb est déconnecté
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 163
    Par défaut
    Il est impossible de récuperer l'adresse mac d'un "client" si un routeur vous sépare. La table arp que tu interroges avec la commande ARP contient la correspondance @IP/@mac pour le meme segment ethernet uniquement.
    Comme tu sembles dire qu'il s'agit d'un extranet par definition ton serveur et tes clients ne sont pas dans le meme "LAN" donc ton serveur ne pourra jamais connaitre leur adresse mac. En php cela me semble donc impossible puisque ca tourne coté serveur.

    En revanche il est pas impossible qu'un applet Java te permette ca (à vérifier ca fait bien bien longtemps que j'ai pas touché au java).



    Citation Envoyé par paradeofphp Voir le message
    En fait, les clients de cette application sont des agents de la campagnie. L'administrateur réseau a les adresses MAC de chaque agent et sont stockées dans une base de données. Donc à chaque tentative de connexion à l'application, il faudra vérifier en plus du login/pass l'adresse MAC. Si l'agent change son adresse MAC, il pourra pas se connecter.
    Bah si, c'est ce que grunk essaye de te dire : une adresse mac ca n'a aucune valeur car ca se spoof facilement, tout comme une ip, un pass et un login d'un collegue ca se récupere facilement...etc. Bref faut pas etre paranoiaque et adapter les methodes de protections à son "public", mais il faut quand meme etre conscient que tu as peu de chance d'arreter une personne competente et motivée pour peter tes sécurités.

Discussions similaires

  1. [Système] Récupérer l'adresse MAC de la machine
    Par la.musaraigne dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 27/01/2011, 14h08
  2. récupérer une adresse mac d'un pc distant
    Par Mut dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 03/02/2006, 11h01
  3. [Ada 95] Récupérer l'adresse MAC de la machine
    Par kindool dans le forum Ada
    Réponses: 3
    Dernier message: 26/05/2005, 15h49
  4. [MFC]récupérer l'adresse MAC
    Par julien20vt dans le forum MFC
    Réponses: 6
    Dernier message: 17/02/2004, 11h22
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo