Zum Inhalt springen

Empfohlene Beiträge

  • Antworten 51
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Geschrieben (bearbeitet)

es ist ein problem aufgetreten und zwar die Netbios funktion ist nicht fuer Windows CE.Net 4.2 gedacht.

das problem bleibt wie kann ich die MAC Adresse eines Web server auslesen mit hilfe eine X funktion.

die frage lautet wie lautet diese funktion

Bearbeitet von karim-wiesbaden
Geschrieben
es ist ein problem aufgetreten und zwar die Netbios funktion ist nicht fuer Windows CE.Net 4.2 gedacht.
Na dann hast du ja doppelt Glück. Erstens entwickelst du ja für XP, und zweitens hat die Funktion, die ich dir genannt habe, nichts mit Netbios zu tun. :rolleyes:

das problem bleibt wie kann ich die MAC Adresse eines Web server auslesen mit hilfe eine X funktion.
Wenn das Programm auf demselben Rechner laufen soll wie der Webserver, dann ist es völlig egal, dass das ein Webserver ist. Damit stiftest du nur Verwirrung.

die frage lautet wie lautet diese funktion
Für CE? GetAdaptersInfo.
Geschrieben

ok danke

das funktioniert trotzdem nicht auch wenn ich die andere dateinein abgebe wie ;Header Iphlpapi.h

Library Iphlpapi.lib

und den folgenden code eingebe:

CodeGuru: Three ways to get your MAC address.

// Fetches the MAC address and prints it

static void GetMACaddress(void)

{

IP_ADAPTER_INFO AdapterInfo[16];

DWORD dwBufLen = sizeof(AdapterInfo);

DWORD dwStatus = GetAdaptersInfo(

AdapterInfo,

&dwBufLen);

assert(dwStatus == ERROR_SUCCESS);

PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;

do {

PrintMACaddress(pAdapterInfo->Address);

pAdapterInfo = pAdapterInfo->Next;

}

while(pAdapterInfo);

}

zeigt mir mehrer fehlern zum Beispiel:

error C2267: 'GetMACaddress': Statische Funktionen mit Blockgültigkeit sind unzulässig

error C2601: 'GetMACaddress': Lokale Funktionsdefinitionen sind unzulässig

error C3861: "assert": Bezeichner wurde nicht gefunden

error C3861: "PrintMACaddress": Bezeichner wurde nicht gefunden.

Geschrieben

ich weiss es nicht

ich habe nur die oben genannte code in einem Case hinzugefügt mehr nicht ::

const HtmxProcessor::TAGDEF HtmxProcessor::TAGDEF_TABLE[] =

{ "MAC1", TAG_MAC1 },

case TAG_MAC1:

static void GetMACaddress(void)

{

IP_ADAPTER_INFO AdapterInfo[16];

DWORD dwBufLen = sizeof(AdapterInfo);

DWORD dwStatus = GetAdaptersInfo( AdapterInfo,&dwBufLen);

assert(dwStatus == ERROR_SUCCESS);

PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;

do {

PrintMACaddress(pAdapterInfo->Address);

pAdapterInfo = pAdapterInfo->Next;

}

while(pAdapterInfo);

}

return true;

Geschrieben
und wo soll ich was korigieren

Da, wo jetzt die Definition der Funktion GetMACaddress steht, gehört ein Aufruf hin:

GetMACaddress();

Die Definition musst du auf die globale Ebene verschieben, also außerhalb von anderen Funktionen, nicht mitten im Code.

Geschrieben (bearbeitet)

wie kann ich diese Aufrufe hinzufügen.

und wie kann ich dei Definition auf die globalen Ebene verschieben, wenn es geht in dem Programm was korigieren.

denk daran dass ich zum ertsen mal damit beschäftige und muss noch viel kennen .

danke im voraus

Bearbeitet von karim-wiesbaden
Geschrieben
wie kann ich diese Aufrufe hinzufügen.
Wie der Aufruf aussieht, habe ich doch geschrieben. Soll ich dir erklären, wie du einen Editor bedienen sollst?

und wie kann ich dei Definition auf die globalen Ebene verschieben,
Ich weiß nicht, wie ich es noch erklären soll, damit du es verstehst.

denk daran dass ich zum ertsen mal damit beschäftige und muss noch viel kennen .
Du musst dir vor allem eine Aufgabe suchen, die deinen Fähigkeiten entspricht. Mit dieser bist du IMHO völlig überfordert, und wirst daraus auch nichts lernen.

Arbeite bitte ein Anfängertutorial oder -buch durch. Dir scheinen die elementarsten Grundlagen zu fehlen.

Geschrieben (bearbeitet)

guten morgen du meinnst damit

case TAG_MAC1:

static void GetMACaddress()

{

IP_ADAPTER_INFO AdapterInfo[16];

DWORD dwBufLen = sizeof(AdapterInfo);

DWORD dwStatus = GetAdaptersInfo( AdapterInfo, &dwBufLen);

assert(dwStatus == ERROR_SUCCESS);

PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;

do {

PrintMACaddress();

pAdapterInfo = pAdapterInfo->Next;

}

while(pAdapterInfo);

}

return true;

ich kann alle annehmen was du sagst

ich mach das zum ersten mal und dauer es bis ich die sachen kapiert habe

Bearbeitet von karim-wiesbaden
Geschrieben
kannst du mir bitte das code in mein programm hinzufuegen.
Nein, kann ich nicht. Du hast den Code der äußeren Funktion (die ich in meinem Beispiel "foo" genannt habe) nicht vollständig gezeigt.

und ich frage auch ,ob ich auf den case verzicht.

Das kann dir niemand beantworten, weil niemand außer dem Autor des Codes wissen kann, welchen Zweck diese case-Anweisung hat.

Geschrieben (bearbeitet)

Mit IP adresse hat es gut funktioniert mit Anwendung der case Anweissung.

#include "Winsock2.h"

const HtmxProcessor::TAGDEF HtmxProcessor::TAGDEF_TABLE[] =

{ "IP1", TAG_IP1 },

case TAG_IP1:

{

WORD wVersionRequested;

WSADATA wsaData;

char name[255];

PHOSTENT hostinfo;

wVersionRequested = MAKEWORD( 2, 0 );

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

{

if( gethostname ( name, sizeof(name)) == 0)

{

if((hostinfo = gethostbyname(name)) != NULL)

{

char* ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);

strncpy(procTag, ip, sizeProcTag);

return true;

}

}

WSACleanup( );

}

strncpy(procTag, "", sizeProcTag);

} return true;

default:

return false;

Bearbeitet von karim-wiesbaden
Geschrieben

Mit IP adresse hat es gut funktioniert mit Anwendung der case Anweissung.

#include "Winsock2.h"

const HtmxProcessor::TAGDEF HtmxProcessor::TAGDEF_TABLE[] =

{ "IP1", TAG_IP1 },

case TAG_IP1:

{

WORD wVersionRequested;

WSADATA wsaData;

char name[255];

PHOSTENT hostinfo;

wVersionRequested = MAKEWORD( 2, 0 );

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

{

if( gethostname ( name, sizeof(name)) == 0)

{

if((hostinfo = gethostbyname(name)) != NULL)

{

char* ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);

strncpy(procTag, ip, sizeProcTag);

return true;

}

}

WSACleanup( );

}

strncpy(procTag, "", sizeProcTag);

} return true;

default:

return false;

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...