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

MATLAB Discussion :

Comment identifier une machine physique (PC)


Sujet :

MATLAB

  1. #1
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 82
    Points : 45
    Points
    45
    Par défaut Comment identifier une machine physique (PC)
    Bonjour,

    Pour une de mes applications, je voudrai pouvoir "identifier à coup sur" la machine physique (PC) sur laquelle l'application est lancée.

    A ma connaissance cela est possible avec l’adresse MAC de la carte de com du PC ou avec le numéro d'identification du disque dur du PC.

    C'est apparemment comme cela que fait Mathworks pour la gestion des droits de licences.

    Mon problème est que je ne sais pas lire ces informations à partir d'un code matlab.

    C'est peut être possible en utilisant une commande de windows qui serait activée depuis matlab.

    Mais je ne sais pas faire cela.

    Une idée ?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Voici un code que je n'avais jamais pris le temps de publier sur le File Exchange :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    function macAddress = getMacAddress(delim)
    %getMacAddress Get the MAC address of the computer (Windows, Linux and Mac)
    %
    %   macAddress = getMacAddress returns the physical address (MAC) of the 
    %   computer in a character array in the form XX-XX-XX-XX-XX-XX on Windows, 
    %   and in the form xx:xx:xx:xx:xx:xx on Linux and Mac.
    %
    %   macAddress = getMacAddress(delim) uses the single character delim to 
    %   separate the hexadecimal digits.
    %
    %   Examples:
    %
    %       macAddress = getMacAddress()
    %
    %       macAddress =
    %
    %       12-34-56-78-9A-BC
    %
    %       macAddress = getMacAddress(':')
    %
    %       macAddress =
    %
    %       12:34:56:78:9A:BC
    %
     
    %   Author: Jerome Briot
    %   http://briot-jerome.developpez.com/
    %   http://www.mathworks.com/matlabcentral/profile/authors/492531-jerome-briot
    %   Contact: dutmatlab at yahoo dot fr
    %   Version: 1.0 - 17 Sep 2014
     
    narginchk(0, 1);
     
    if nargin==1 && (~ischar(delim) || ~isscalar(delim))
        error('getMacAddress:WrongDelimiter', ...
            'Input argument must be a single character (''-'', '':''...)');
    end
     
    if ispc
        cmd = 'echo off & for /f "delims=," %A in (''getmac /FO csv /NH'') do echo %A';
    elseif ismac
        cmd = 'ifconfig en0 | grep ether | awk ''{print $NF}''';
    elseif isunix
        cmd = 'ifconfig eth0 | grep HWaddr | awk ''{print $NF}''';
    end
     
    [status, msg] = system(cmd);
     
    if status
        error('getMacAddress:NoMacAdress', ...
            'Unable to get the MAC address.\n%s', msg);
    end
     
    macAddress = strrep(msg, '"', '');
     
    % Now the MAC address should be in one of these two forms:
    % xx:xx:xx:xx:xx:xx (Linux or Mac) or XX-XX-XX-XX-XX-XX (Windows)
    idx = [strfind(macAddress, ':') strfind(macAddress, '-')];
    if numel(idx)~=5 ||  ~all(idx==[3 6 9 12 15])
        error('getMacAddress:NonValidAdress', ...
            'Unable to validate the MAC address: %s', macAddress);
    end
     
    if nargin==1
        macAddress([3 6 9 12 15]) = delim;
    end
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2014
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 82
    Points : 45
    Points
    45
    Par défaut
    bonjour

    le code fonctionne bien à condition que la machine physique ne contienne que une adresse MAC
    Si il y a 2 adresses MAC sur le PC le code retourne une erreur. (c'est de code matlab GetMacAdress, pas la fonction système)
    C'est facile à corriger en ne retenant que la première adresse MCA par exemple.

    Merci donc pour ce code utile.

    Cata

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/01/2016, 14h00
  2. Comment virtualiser une machine physique sous 2008 R2
    Par kilicool dans le forum VMware
    Réponses: 3
    Dernier message: 30/08/2011, 14h01
  3. Comment virtualiser une machine physique en virtuelle?
    Par Angeldu74 dans le forum Virtualisation
    Réponses: 4
    Dernier message: 15/04/2009, 08h58
  4. Comment identifier une machine de manière unique ?
    Par jackfirst72 dans le forum Sécurité
    Réponses: 4
    Dernier message: 07/03/2007, 13h59
  5. Comment identifier une machine de facon unique ?
    Par BigBenQ dans le forum Développement
    Réponses: 14
    Dernier message: 19/12/2005, 08h36

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