Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
913 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Adresse physique de carte réseau sous XP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Adresse physique de carte réseau sous XP

n°458453
polyacetal
I was here
Posté le 15-07-2003 à 16:30:32  profilanswer
 

Salut,
j'ai écrit un petit programme (c++) qui lit l'adresse physique de la carte réseau. Seulement, sous XP, si la carte est pas reliée au réseau (ou à quoi que ce soit d'ailleur) c'est comme s'il n'y avait pas de carte et du coup ca plante   :fou:  : comment faire pour la détecter même si elle n'est pas reliée  :??: . (ca doit être faisable car j'ai un logiciel qui se sert de cette adresse pour vérifier sa licence et il fonctionne que la carte soit connectée ou non... :pt1cable: )
Merci!
PS: j'ai posé cette question sur la section hardware pour savoir s'il y avait une option dans windows pour qu'il l'active dans tout les cas mais a-priori ca n'existe pas  :pfff:

mood
Publicité
Posté le 15-07-2003 à 16:30:32  profilanswer
 

n°458596
HelloWorld
Salut tout le monde!
Posté le 15-07-2003 à 18:04:36  profilanswer
 

Ben donne un peu de code.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°458625
polyacetal
I was here
Posté le 15-07-2003 à 18:23:38  profilanswer
 

Voila mes 2 méthodes pour récupérer l'adresse de la ou des cartes réseau (a représente le numéro de la carte dans la liste s'il y en a plusieurs)... Je crois que j'avais trouvé ce code sur ce forum d'ailleur. Pour les besoins de mon programme, je retourne l'adresse de la carte sous la forme "XX  XX  XX  XX  XX  XX" (c'est EN). Le problème c'est que sous XP, il ne trouve même pas de carte...  

Code :
  1. void FindCode(int a){ // Get adapter list
  2.   LANA_ENUM AdapterList;
  3.   NCB Ncb;
  4.   memset(&Ncb, 0, sizeof(NCB));
  5.   Ncb.ncb_command = NCBENUM;
  6.   Ncb.ncb_buffer = (unsigned char *)&AdapterList;
  7.   Ncb.ncb_length = sizeof(AdapterList);
  8.   Netbios(&Ncb);
  9.   string b;
  10.   GetAdapterInfo(AdapterList.lana[a], b);
  11. }
  12. void GetAdapterInfo(int adapter_num,string &a){
  13. // Reset the LAN adapter so that we can begin querying it
  14. NCB Ncb;
  15. memset(&Ncb, 0, sizeof(Ncb));
  16. Ncb.ncb_command = NCBRESET;
  17. Ncb.ncb_lana_num = adapter_num;
  18. if (Netbios(&Ncb) != NRC_GOODRET){
  19.     EN = "00";
  20. }
  21. // Prepare to get the adapter status block
  22. memset(&Ncb,0,sizeof(Ncb));
  23. Ncb.ncb_command = NCBASTAT;
  24. Ncb.ncb_lana_num = adapter_num;
  25. strcpy((char *) Ncb.ncb_callname, "*" );
  26. struct ASTAT
  27.     {
  28.     ADAPTER_STATUS adapt;
  29.     NAME_BUFFER NameBuff[30];
  30.     } Adapter;
  31. memset(&Adapter,0,sizeof(Adapter));
  32. Ncb.ncb_buffer = (unsigned char *)&Adapter;
  33. Ncb.ncb_length = sizeof(Adapter);
  34. // Get the adapter's info and, if this works, return it in standard,
  35. // colon-delimited form.
  36. if (Netbios(&Ncb) == 0)
  37.     {
  38.     char acMAC[23];
  39.     sprintf(acMAC, "%02X  %02X  %02X  %02X  %02X  %02X",
  40.             int (Adapter.adapt.adapter_address[0]),
  41.             int (Adapter.adapt.adapter_address[1]),
  42.             int (Adapter.adapt.adapter_address[2]),
  43.             int (Adapter.adapt.adapter_address[3]),
  44.             int (Adapter.adapt.adapter_address[4]),
  45.             int (Adapter.adapt.adapter_address[5]));
  46.     EN = acMAC;
  47.     }
  48. else
  49.     {
  50.     EN = "00";
  51.     }
  52. }


 
sinon après je compare cette adresse avec celle qui est déduite du mot de passe de l'utilisateur...

n°458672
HelloWorld
Salut tout le monde!
Posté le 15-07-2003 à 18:49:42  profilanswer
 

C'est bien ce que je pensais, ce n'est pas l'adresse physique que tu récupères, mais l'adresse Mac. Y'a à ma connaissance 3 méthodes pour le faire. Il est intéressant de noter qu'apparement celle que tu emploies ne fonctionnes pas si la carte n'est pas reliée à un réseau.
Mais avant dit moi, si j'ai bien compris, t'es en train de coder un keygen ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°458676
polo021
Posté le 15-07-2003 à 18:54:00  profilanswer
 

jette un petit coup d'oeil rapide du cote de "GetInterface" et compagnie. Ca pourra peut etre t'aider  :??:

n°458705
red factio​n
Posté le 15-07-2003 à 19:51:46  profilanswer
 

jvais ptet dire nimporte quoi mais peut etre peut on lire adresse en faisant un imp sur un port de la carte reseau

n°459068
HelloWorld
Salut tout le monde!
Posté le 16-07-2003 à 09:43:27  profilanswer
 

Oui mais on peut pas faire un imp sous NT/XP ...
Sinon, ca a été traité plein de fois, et même la semaine dernière si je ne m'abuse.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Adresse physique de carte réseau sous XP

 

Sujets relatifs
Programmation d'une carte I/OTransmettre des données autrement que par la barre d'adresse?
Comment récupérer la Mac Address de ma carte réseau ?lien href qui marche pas sous NS6 : réseau intranet
masquer une adresseOuverture d'un fichier sur le réseau
automatiser une copie de répertoire ..sur un reseaulire des dossiers d'un ordi se trouvant sur le réseau avec FSO an asp
communication sonde thermique carte mère 
Plus de sujets relatifs à : Adresse physique de carte réseau sous XP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR