Avatar billede Rene_Hornbjerg Nybegynder
17. november 2010 - 15:16 Der er 7 kommentarer

C eller C++ code til at finde MAC adressen på computeren

Hej

Jeg sidder her med et lille problem - Jeg skal bruge en C eller C++ code der kan printe MAC adressen som output - Vil gerne hvis nogen kunne skrive hele coden til mig da jeg er ved at lede på google - Min compiler er cygwin så det skal gerne kunne lade sig gøre at compile i denne - Coden skal helst være til et C program, men C++ gør heller ikke noget..

På forhånd tak

Mvh
René Hornbjerg
Avatar billede claes57 Ekspert
17. november 2010 - 16:17 #1
jf http://www.codeguru.com/cpp/i-n/network/networkinformation/article.php/c5451
jeg har klippet det brugbare ud her:

Use GetAdaptersInfo

The cleanest way I could find to get all the MAC addresses located on a PC was to use the GetAdaptersInfo method. It includes almost as much information as IPCONFIG /ALL including your DHCP server, Gateway, IP address list, subnet mask and WINS servers. It also enumerates all the NICs on your PC and is supported in 95/98/Me/NT/2000/XP. Finally it also works if your NICs are not connected to valid networks (eg. wires are not even hooked up), but the NICs do have to be "enabled" in Windows.

// Fetches the MAC address and prints it
static void GetMACaddress(void)
{
  IP_ADAPTER_INFO AdapterInfo[16];      // Allocate information
                                        // for up to 16 NICs
  DWORD dwBufLen = sizeof(AdapterInfo);  // Save memory size of buffer

  DWORD dwStatus = GetAdaptersInfo(      // Call GetAdapterInfo
    AdapterInfo,                // [out] buffer to receive data
    &dwBufLen);                  // [in] size of receive data buffer
  assert(dwStatus == ERROR_SUCCESS);  // Verify return value is
                                      // valid, no buffer overflow

  PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo; // Contains pointer to
                                              // current adapter info
  do {
    PrintMACaddress(pAdapterInfo->Address); // Print MAC address
    pAdapterInfo = pAdapterInfo->Next;    // Progress through
                                          // linked list
  }
  while(pAdapterInfo);                    // Terminate if last adapter
}

I probably should mention that statically allocating an array for up to 16 NICs is not the best way to do this. It is a quick and dirty solution that should show you essentially how to get and enumerate all the MAC addresses on your PC.
Avatar billede Rene_Hornbjerg Nybegynder
17. november 2010 - 20:29 #2
C eller C++ ?
Avatar billede arne_v Ekspert
18. november 2010 - 02:03 #3
Det ligner ren C.
Avatar billede Rene_Hornbjerg Nybegynder
18. november 2010 - 09:44 #4
Hvorfor brokker compileren sig over at der er fejl?
Avatar billede claes57 Ekspert
18. november 2010 - 10:24 #5
gå ind på linket, og tjek hele artiklen ud. Der kan stå nogle forbehold jeg ikke har fået med.
Avatar billede arne_v Ekspert
19. november 2010 - 02:59 #6
Eller post koden og fejl beskeden.
Avatar billede arne_v Ekspert
27. december 2010 - 00:29 #7
rene??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester