Obtenir Addrese MAC

Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008 - 13 mars 2007 à 16:13
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008 - 16 mars 2007 à 10:03
Bonjour!

Alors comme indiqué dans le titre, j'aimerais savoir comment savoir comment recuperer l'addresse MAC d'une machine...

J'ai trouvé plusieurs solution sur le net, mais aucune ne semble fonctionné:
http://www.scalabium.com/faq/dct0088.htm
Mais cette fonction me donne un autre resultat a chaque appel...

J'ai egalement trouvé souvent cette solution:
http://www.developpez.com/delphi/faq/?page=reseau#adressemac
qui marche tant que l'ordinateur est connecter a internet, mais dès que l'on debranche le cable reseau, elle ne trouve plus rien...

Comment obtenir l'addresse mac (physique) que l'on obtient en tapant sur un invite de commande "ipconfig /all"?

Merci d'avance pour votre aide!

5 réponses

Utilisateur anonyme
13 mars 2007 à 17:29
Salut

Regarde ce code (Non testé) : http://www.swissdelphicenter.ch/torry/showcode.php?id=651
0
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
13 mars 2007 à 17:48
Merci de ton aide...

Je viens de tester le code que tu m'a donné, et malheureusement j'ai le meme resultat qu'avec le code du deuxieme lien que j'ai donné, a savoir que ca marche nickel quand je suis connecter, mais dès que je debranche le cable reseaux, il trouve plus rien...

Merci quand meme!

Si quelqu'un d'autre a une idée ou une solution, je sui preneur!

Merci d'avance!
[auteurdetail.aspx?ID=560094 ]
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 mars 2007 à 18:03
Mais loool sur le premier lien de Sat83 ! Ca doit être un fake ou c'est pas possible.

Les guid, c'est des numéros unique (Générés à partir nottement de l'adresse MAC d'ailleurs).

Y a ce code qui utilise WMI, qui n'est pas de moi, mais j'ai zappé le nom de l'auteur qui avait posté ça sur ce site.

Citation :
========================================================
Et bien voilou, j'ai trouvé une méthode qui fonctionne parfaitement bien et qui renvoi
a chaque fois de manière sûr l'adresse MAC, même lorsque le cable réseau est débranché.


voici comment faire: (utilisation de WMI)


uses ComObj, OleServer;


function MACAdresse: string;
var
  WmiService : SWbemServices;
  WmiObjet   : SWbemObject;
  wmiObjetSet: SWbemObjectSet;
  ObjectEnumerator: IEnumVariant;
  ArrayVariant: OleVariant;
  NumberItem  : LongWord;
  WMILocator  : TSWbemLocator;
begin
  Result:= '';
  WMILocator:= TSWbemLocator.Create(self);
  try
    try
     WMILocator.Security_.Set_ImpersonationLevel(wbemImpersonationLevelImpersonate);
     WMILocator.Security_.Set_AuthenticationLevel(wbemAuthenticationLevelDefault);
     WmiService:= WMILocator.ConnectServer('.', 'ROOT\CIMV2', '', '', '', '', 0, nil);
    except
      on E:EOleException do
       begin
         ShowMessage(SysErrorMessage(E.ErrorCode)+' ['+IntToHex(E.ErrorCode,8)+'] '+E.Message);
         Raise;
       end;
    end;
    wmiService.Security_.Privileges.Add(wbemPrivilegeShutdown, True);
    wmiObjetSet := wmiService.ExecQuery('Select * from Win32_NetworkAdapterConfiguration',
                                         'WQL', wbemFlagReturnImmediately, nil);
    ObjectEnumerator:= (WmiObjetSet._NewEnum) as IEnumVariant;
    while (ObjectEnumerator.Next(1, ArrayVariant, NumberItem) = S_OK) do
    begin
      WmiObjet := IUnknown(ArrayVariant) as SWBemObject;
      if Boolean(WmiObjet.Properties_.Item('IPEnabled', 0).Get_Value) then
        Result:= WmiObjet.Properties_.Item('MACAddress', 0).Get_Value;
    end;
  finally
    WMILocator.Free;
  end;
end;




voila, avec l'utilisation des WMI, plus de soucis, attention, il faut importer l'activeX
WbemScripting_TLB.pas


si vous avez besoin de précision sur ce code, n'hésitez pas à me contacter, je n'ai mis aucun commentaire et j'ai adapté un code source que j'avais fait pour faire des reboot à distance, d'ou le nom de certaines variables ;-)
0
Filipe35 Messages postés 470 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 23 octobre 2007 1
16 mars 2007 à 01:48
Tout dépend de quelle machine tu veux récupérer l'@MAC

Une adresse MAC permet de relier des équipements adjacents et non distants (IP) !

Par exemple tu ne pourras jamais récupérer l'adresse du serveur de google, ou encore de ma machine.

Par contre tu peux sans problèmes récupérer celle où est éxécuté ton programme et celles des machines adjacentes.

;)

++

Filipe

__________________________________________________
http://www.OgameTut.Free.Fr - Le site sur ogame de référence !
http://www.OgameLib.Free.Fr - La bibliothèque des skins Ogame !
http://Signz.free.fr - Le générateur de signature 100% Gratuit.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
16 mars 2007 à 10:03
@[auteurdetail.aspx?ID=193663 Filipe35:]

Je veux effectivement recuperer l'addresse MAC de la machine où est executer le programme...

@[auteurdetail.aspx?ID=464943 rt15]

Merci pour ton code, je n'ai pas encore eu le temps de le tester je le ferais dans les prochains jours.... Merci en tout cas!
0
Rejoignez-nous