Autor
|
|
Nachricht nächster / vorheriger Thread
|
Cerox Einsteiger
Registriert seit: 09.2005 Beiträge:3
| MAC Adresse einer NIC ermitteln Hallo zusammen,
ich würde gerne in einem C/C++ Programm die MAC Adresse meiner Netzwerkkarte ermitteln, so dass ich mit dieser weiter arbeiten kann.
Leider habe ich bisher nur Grundkenntnisse von C und wenig C++. Kann mir jemand sagen, wie man die MAC Adresse einer Netzwerkkarte auslesen kann?
|
09.09.2005 17:19 | Profil >> Zitat >> IP gespeichert |
Keywords:MAC |
---|
Simon Online-tutorials.net Administrator
Registriert seit: 01.1970 Wohnort:Dornbirn Beiträge:1181
| Damit wir dir helfen können sollten wir wissen unter welchem System du Programmieren willst, ob es die primäre ist, ...
Windows, Linux, ... -------------------
http://www.online-tutorials.net/wiki/funktionsname
Für was Personal Firewalls GnuGP emails verschlüsseln C++ Tutorial Sicherheits Tutorials
|
09.09.2005 17:54 | Homepage >> >>Profil >> Zitat >> IP gespeichert |
Cerox Einsteiger
Registriert seit: 09.2005 Beiträge:3
| Also das ganze soll unter Windows stattfinden. Es wird eine Datei auf einer Diskette geben; diese Datei startet man und dann wird automatisch die MAC Adresse der aktiven NIC in eine txt gespeichert. Das Speichern in der txt ist kein Problem - dafür reichen meine Kenntnisse mit C aus - aber wie kann ich die MAC Adresse auslesen und als String speichern?
|
09.09.2005 17:58 | Profil >> Zitat >> IP gespeichert |
Simon Online-tutorials.net Administrator
Registriert seit: 01.1970 Wohnort:Dornbirn Beiträge:1181
| Hallo,
für Windows gibt es dazu in der MSDN einiges.
Ich habe hier einen Artikel gefunden.
Hier der Code:
Code:
include
int RadMac(std::string &strMac)
{
AnsiString &MacAddr
NCB ncb;
UCHAR RetCode;
char NetName[50];
struct{ ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];
} Adapter;
// Adapter Reset
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command=NCBRESET;
ncb.ncb_lana_num=0;
if((RetCode=Netbios(&ncb))!=0)
{
strMac = "Fehler " + std::string(RetCode) +" beim Reset des Adapters";
return 1;
}
// Adapter Status
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command=NCBASTAT;
ncb.ncb_lana_num=0;
memset(ncb.ncb_callname, ' ', NCBNAMSZ);
*(ncb.ncb_callname)='*';
ncb.ncb_buffer=(char*)&Adapter;
ncb.ncb_length=sizeof(Adapter);
if((RetCode=Netbios(&ncb))==0)
{ MacAddr.sprintf("%02X-%02X-%02X-%02X-%02X-%02X",
Adapter.adapt.adapter_address[0],
Adapter.adapt.adapter_address[1],
Adapter.adapt.adapter_address[2],
Adapter.adapt.adapter_address[3],
Adapter.adapt.adapter_address[4],
Adapter.adapt.adapter_address[5] );
strMac = MacAddr;
}
else
{
strMac = "Fehler " + std:string(RetCode) + " beim Bestimmen der MacAdrese";
1;
}
return 0;
}
-------------------
http://www.online-tutorials.net/wiki/funktionsname
Für was Personal Firewalls GnuGP emails verschlüsseln C++ Tutorial Sicherheits Tutorials
Firefox - besser durch das Web!
|
09.09.2005 19:09 | Homepage >> >>Profil >> Zitat >> IP gespeichert |
Cerox Einsteiger
Registriert seit: 09.2005 Beiträge:3
| Was genau macht dieses Programm denn alles? Ich möchte die MAC Adresse nur auslesen - nichts weiter!
Kann man das auch in Form einer Batch Datei machen, was ja auch viel einfacher und kürzer wäre? Also so dass die Batch Datei z.B. nach der Eingabe von ipconfig automatisch die Zeile mit der MAC Adresse in eine txt kopiert?
|
09.09.2005 20:01 | Profil >> Zitat >> IP gespeichert |
Simon Online-tutorials.net Administrator
Registriert seit: 01.1970 Wohnort:Dornbirn Beiträge:1181
| Mac Adresse auslesen Es liest nur die MAC Adresse aus:
Beispiel:
Code:
#include
#include
int RadMac(std::string &strMac)
{
AnsiString &MacAddr
NCB ncb;
UCHAR RetCode;
char NetName[50];
struct{ ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];
} Adapter;
// Adapter Reset
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command=NCBRESET;
ncb.ncb_lana_num=0;
if((RetCode=Netbios(&ncb))!=0)
{
strMac = "Fehler " + std::string(RetCode) +" beim Reset des Adapters";
return 1;
}
// Adapter Status
memset(&ncb, 0, sizeof(ncb));
ncb.ncb_command=NCBASTAT;
ncb.ncb_lana_num=0;
memset(ncb.ncb_callname, ' ', NCBNAMSZ);
*(ncb.ncb_callname)='*';
ncb.ncb_buffer=(char*)&Adapter;
ncb.ncb_length=sizeof(Adapter);
if((RetCode=Netbios(&ncb))==0)
{ MacAddr.sprintf("%02X-%02X-%02X-%02X-%02X-%02X",
Adapter.adapt.adapter_address[0],
Adapter.adapt.adapter_address[1],
Adapter.adapt.adapter_address[2],
Adapter.adapt.adapter_address[3],
Adapter.adapt.adapter_address[4],
Adapter.adapt.adapter_address[5] );
strMac = MacAddr;
}
else
{
strMac = "Fehler " + std:string(RetCode) + " beim Bestimmen der MacAdrese";
1;
}
return 0;
}
int main(char* argv[])
{
std::string strMac;
RadMac(strMac);
std::cout
Probier das mal aus, wenn es nicht geht, können wir immmer noch ipconfig auslesen. Dieser Beitrag wurde zuletzt am 10.09.2005 23:14 von Simon editiert. -------------------
http://www.online-tutorials.net/wiki/funktionsname
Für was Personal Firewalls GnuGP emails verschlüsseln C++ Tutorial Sicherheits Tutorials
Firefox - besser durch das Web!
|
09.09.2005 21:56 | Homepage >> >>Profil >> Zitat >> IP gespeichert |
|
nächster / vorheriger Thread
|