MAC Adresse einer NIC ermitteln

Online-tutorials.net Forenübersicht/C++ / C#/MAC Adresse einer NIC ermitteln

Antworten Neues Thema Bottom Seite 1 

Autor | Nachricht      nächster / vorheriger Thread

Cerox
Einsteiger

avatar

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:19Profil >> Zitat >> IP gespeichert 
Keywords:MAC

Simon
Online-tutorials.net Administrator

avatar

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:54Homepage >> icq status >>Profil >> Zitat >> IP gespeichert 

Cerox
Einsteiger

avatar

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:58Profil >> Zitat >> IP gespeichert 

Simon
Online-tutorials.net Administrator

avatar

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:09Homepage >> icq status >>Profil >> Zitat >> IP gespeichert 

Cerox
Einsteiger

avatar

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:01Profil >> Zitat >> IP gespeichert 

Simon
Online-tutorials.net Administrator

avatar

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:56Homepage >> icq status >>Profil >> Zitat >> IP gespeichert 
                   nächster / vorheriger Thread

Antworten Neues Thema Top Seite 1