Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : SUPER IMPORTANT / EST CE POSSIBLE [ Archives / Réseau / Internet ] (bily)

jeudi 31 octobre 2002 à 14:53:23 | SUPER IMPORTANT / EST CE POSSIBLE

bily

Vegeta :-)

salut a tous, je vourdai savoir comment faire en programmation la lecture de l'adresse physique de la carte reseau, lorsqu'on tape "ipconfig / all " sous dos, le resultat a coté de : adresse physique ecrit en hexadecimal

! et surtout si il ya 2 carte comment faire pour lire uniquement celle qu'on veut !

( si vous avez deja un programme qu'il le fait
et qui ecrit le resultat dans un fichier c impeccable
)

lundi 4 novembre 2002 à 07:51:07 | Re : SUPER IMPORTANT / EST CE POSSIBLE

ADPro22

Réponse: C'est possible !
Google est ton ami (et le miens aussi)

Je cite :

--------------------------------------------------------
De :Alex Vinokur (alexvn@bigfoot.com)
Objet :Getting MAC Address (NetBIOS Method) within C/C++-program in Windows2000
This is the only article in this thread
View: Original Format
Groupes de discussion :alt.os.windows2000, comp.os.ms-windows.apps.winsock.misc, comp.os.ms-windows.misc, comp.os.ms-windows.programmer.misc, comp.os.ms-windows.programmer.tools.winsock, microsoft.public.win2000.general
Date :2002-09-04 10:45:20 PST

===============================
Windows 2000 Professional
-------------------
CYGWIN_NT-5
gcc/g++ version 2.95.3-5 (cygwin special)
-------------------
MINGW-1.1
gcc/g++ version 2.95.3-6 (mingw special)
===============================

Here is a program getmac-netbios.cpp "How to Get the Ethernet MAC Address, NetBIOS Method"
from http://tangentsoft.net/wskfaq/examples/getmac-netbios.html
P.S. The only line has been added :
cout << "MY INFO : AdapterList.length = " << static_cast<int>(AdapterList.length) << endl;

We can see that AdapterList.length == 0.
So, we can't get MAC address.

Is something wrong ?

P.S.S. The program was running while I was working offline. Is it essential for this program ?

========= C++ Code : BEGIN =========
// File x2.cpp

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <strstream>
#include <string>

using namespace std;

bool GetAdapterInfo(int nAdapterNum, string & sMAC)
{
// Reset the LAN adapter so that we can begin querying it
NCB Ncb;
memset(&Ncb, 0, sizeof(Ncb));
Ncb.ncb_command = NCBRESET;
Ncb.ncb_lana_num = nAdapterNum;
if (Netbios(&Ncb) != NRC_GOODRET) {
char acTemp[80];
ostrstream outs(acTemp, sizeof(acTemp));
outs << "error " << Ncb.ncb_retcode << " on reset" << ends;
sMAC = acTemp;
return false;
}

// Prepare to get the adapter status block
memset(&Ncb, 0, sizeof(Ncb));
Ncb.ncb_command = NCBASTAT;
Ncb.ncb_lana_num = nAdapterNum;
strcpy((char *) Ncb.ncb_callname, "*");
struct ASTAT {
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
} Adapter;
memset(&Adapter, 0, sizeof(Adapter));
Ncb.ncb_buffer = (unsigned char *)&Adapter;
Ncb.ncb_length = sizeof(Adapter);

// Get the adapter's info and, if this works, return it in standard,
// colon-delimited form.
if (Netbios(&Ncb) == 0) {
char acMAC[18];
sprintf(acMAC, "%02X:%02X:%02X:%02X:%02X:%02X",
int (Adapter.adapt.adapter_address[0]),
int (Adapter.adapt.adapter_address[1]),
int (Adapter.adapt.adapter_address[2]),
int (Adapter.adapt.adapter_address[3]),
int (Adapter.adapt.adapter_address[4]),
int (Adapter.adapt.adapter_address[5]));
sMAC = acMAC;
return true;
}
else {
char acTemp[80];
ostrstream outs(acTemp, sizeof(acTemp));
outs << "error " << Ncb.ncb_retcode << " on ASTAT" << ends;
sMAC = acTemp;
return false;
}
}

int main()
{
// Get adapter list
LANA_ENUM AdapterList;
NCB Ncb;
memset(&Ncb, 0, sizeof(NCB));
Ncb.ncb_command = NCBENUM;
Ncb.ncb_buffer = (unsigned char *)&AdapterList;
Ncb.ncb_length = sizeof(AdapterList);
Netbios(&Ncb);

// Get all of the local ethernet addresses
string sMAC;
cout << "MY INFO : AdapterList.length = " << static_cast<int>(AdapterList.length) << endl;
for (int i = 0; i < AdapterList.length; ++i) {
if (GetAdapterInfo(AdapterList.lana[i], sMAC)) {
cout << "Adapter " << int (AdapterList.lana[i]) <<
"'s MAC is " << sMAC << endl;
}
else {
cerr << "Failed to get MAC address! Do you" << endl;
cerr << "have the NetBIOS protocol installed?" << endl;
break;
}
} return 0;
}


------------------------------------------------------

J'ai testé ce prog et il fonctionne.
Une chose: penser à la librairie netapi32.lib dans les options de ton linker.


Cordialement.
ADPro22.

-------------------------------
Réponse au message :
-------------------------------

Vegeta :-)

salut a tous, je vourdai savoir comment faire en programmation la lecture de l'adresse physique de la carte reseau, lorsqu'on tape "ipconfig / all " sous dos, le resultat a coté de : adresse physique ecrit en hexadecimal

! et surtout si il ya 2 carte comment faire pour lire uniquement celle qu'on veut !

( si vous avez deja un programme qu'il le fait
et qui ecrit le resultat dans un fichier c impeccable
)




Cette discussion est classé dans : possible, adresse, important, super, physique


Répondre à ce message

Sujets en rapport avec ce message

SUPER IMPORTANT / EST CE POSSIBLE [ par bily ] Vegeta :-)salut a tous, je vourdai savoir comment faire en programmation la lecture de l'adresse physique de la carte reseau, lorsqu'on tape "ipconfig lire à partir d'une adresse physique [ par nmamir ] Salut tous le monde, J'ai besoin de créer une fonction que lire des données associé a une adresse physique sur un flash disque Mono Document Important plzzzzz :s [ par FlamZeNioub ] Slt,est-ce que quelqu'un pourrait me dire si c'est possible d'inserer une image dans la page principale d'un mono document histoire de remplacer le vi Version de programme sous Visual 97 [ par themaste ] Salut a tous!Voila, je viens de récupérer un vieux programme dont je dois faire des mise à jour. Je dois bosser sous visual studio 97, et je n'arrive Inserer une adresse internet [ par ricky78 ] Bonjour à tous,J'aimerais connaitre le moyen d'insérer une adresse internet dans la fenetre dialogue principale d'une application en visual C++ (Dialo l'adresse du dossier temporaire de l'utilisateur ? [ par maevasa ] Est ce qu'il y a moyen de connaître le chemin du dossier temp de l'utilisateur dans documents and settings...quand on ne connait pas l'utilisateur???? Compilons nous même [ par Stepharcher ] Bonjours à tous !Je me demande si il est possible d'utiliser un compilateur C++ dans un programmes pour pouvoir créer un éditeur comme Dev C++. Person Libraire QT [ par c2millet ] Bonjour à tous,Je commence juste a utiliser cette lib et je voudrais savoir si il est possible comme avec les API windows, d'intercepter les messages Liens vers page web [ par Wildschwein ] Bonjour,Je débute depuis peu la programmation sous Visual C++ et j'ai réalisé une petite application.Dans ma fenêtre "A propos..." j'ai mis l'adresse est -il possible de creer un scrollbar sous une boite de dialog [ par chriscrepin1 ] bonjour , super urgent je n'arrive pas a gerer un scollbar sous une boite de dialog je voulais savoir si c'etait possible si oui comment fairesi non j


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.