IP-MAC Adresse auslesen

abdelkarim

Grünschnabel
Wie kann ich die ip- und Mac Adresse auslesen bei ein Webseite, die mit Visual studio 2008 geschrieben wurde.
Danke für ihre Hilfe
Bei Fragen stehe gerne zur Verfügung
Ihre neue Praktikant
 
Zuletzt bearbeitet:

pschilling

Erfahrenes Mitglied
Hi,

ich weiss zwar nicht genau, was du mit Webseite meinst, da wir uns hier im Visual Studio und MFC Forum befinden, aber mit der folgenden Methode kannst du alle MAC-Adressen eines Rechners auslesen.

Code:
void CTCPServerApp::GetMACAddresses(CStringArray &macAdresses) {
    macAdresses.RemoveAll();

    PIP_ADAPTER_ADDRESSES pAddresses;
    pAddresses = (IP_ADAPTER_ADDRESSES*) new BYTE[sizeof(IP_ADAPTER_ADDRESSES)];
    ULONG outBufLen = 0;
    DWORD dwRetVal = 0;

    if (GetAdaptersAddresses(0, 
        0, 
        NULL, 
        pAddresses, 
        &outBufLen) == ERROR_BUFFER_OVERFLOW) {
            delete pAddresses;
            pAddresses = (IP_ADAPTER_ADDRESSES*) new BYTE[outBufLen];
    }

    if ((dwRetVal = GetAdaptersAddresses(0, 
        0, 
        NULL, 
        pAddresses, 
        &outBufLen)) == NO_ERROR) {
            while (pAddresses) {
                CString macAdr;
                for( int i = 0; i < pAddresses->PhysicalAddressLength; i++ ) {
                    CString tmp;
                    tmp.Format("%02x", pAddresses->PhysicalAddress[i]);
                    macAdr += tmp;
                    if( i < 5 ) {
                        macAdr += "-";
                    }
                }
                if( macAdr.GetLength() > 5 ) {
                    macAdresses.Add(macAdr);
                }
                pAddresses = pAddresses->Next;
            }
            delete pAddresses;
            return;           
    }
    else { 
        // Fehler
        printf("Call to GetAdaptersAddresses failed.\n");
    }

    return;
}

und so deine IP-Adresse

Code:
      WORD wVersionRequested;
      WSADATA wsaData;
      char name[255];
      CString ip;
      PHOSTENT hostinfo;
      wVersionRequested = MAKEWORD( 2, 0 );

      if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
      {

            if( gethostname ( name, sizeof(name)) == 0)
            {
                  if((hostinfo = gethostbyname(name)) != NULL)
                  {
                        ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
                  }
            }

            WSACleanup( );
      }

Vielleicht hilfts dir ja!

Schönen Gruß,

Pit
 
Zuletzt bearbeitet: