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:
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:

Neue Beiträge

Zurück