Win IP Adressen auslesen & anzeigen
-
haha sehr lustig. ich meinte eigentlich die lan-ip... 192.168.xxx.xxx
oder wie auch immer...
-
-
also, ich habs mir mal angesehen und ausprobiert. nur da kommt dann folgender fehler...
[C++ Fehler] Unit1.cpp(21): E2451 Undefiniertes Symbol 'WSADATA'
[C++ Fehler] Unit1.cpp(21): E2379 In Anweisung fehlt ;
[C++ Fehler] Unit1.cpp(26): E2268 Aufruf der undefinierten Funktion 'WSAStartup'
[C++ Fehler] Unit1.cpp(26): E2451 Undefiniertes Symbol 'wsaData'
[C++ Fehler] Unit1.cpp(27): E2451 Undefiniertes Symbol 'SOCKET_ERROR'
[C++ Fehler] Unit1.cpp(27): E2268 Aufruf der undefinierten Funktion 'gethostname'
[C++ Fehler] Unit1.cpp(27): E2268 Aufruf der undefinierten Funktion 'NUM_ELEMENTS'
[C++ Fehler] Unit1.cpp(29): E2268 Aufruf der undefinierten Funktion 'gethostbyname'
[C++ Fehler] Unit1.cpp(29): E2034 Konvertierung von 'int' nach 'hostent *' nicht möglich
[C++ Fehler] Unit1.cpp(31): E2315 'h_addr_list' ist kein Element von 'hostent', weil der Typ nicht definiert ist.
[C++ Fehler] Unit1.cpp(33): E2315 'h_addr_list' ist kein Element von 'hostent', weil der Typ nicht definiert ist.
[C++ Fehler] Unit1.cpp(34): E2315 'h_addr_list' ist kein Element von 'hostent', weil der Typ nicht definiert ist.
[C++ Fehler] Unit1.cpp(35): E2315 'h_addr_list' ist kein Element von 'hostent', weil der Typ nicht definiert ist.
[C++ Fehler] Unit1.cpp(36): E2315 'h_addr_list' ist kein Element von 'hostent', weil der Typ nicht definiert ist.
[C++ Fehler] Unit1.cpp(37): E2451 Undefiniertes Symbol 'IP_ADRESSE'
[C++ Fehler] Unit1.cpp(41): E2268 Aufruf der undefinierten Funktion 'WSACleanup'
[C++ Warnung] Unit1.cpp(43): W8004 'h' wurde ein Wert zugewiesen, der nie verwendet wird.code:
struct hostent* h; WSADATA wsaData; UCHAR ucAddress[4]; CHAR szHostName[MAX_PATH]; int x; WSAStartup(MAKEWORD(1, 1), &wsaData); if(SOCKET_ERROR != gethostname(szHostName, NUM_ELEMENTS(szHostName))) { if(NULL != (h = gethostbyname(szHostName))) { for(x = 0; (h->h_addr_list[x]); x++) { ucAddress[0] = h->h_addr_list[x][0]; ucAddress[1] = h->h_addr_list[x][1]; ucAddress[2] = h->h_addr_list[x][2]; ucAddress[3] = h->h_addr_list[x][3]; wsprintf(IP_ADRESSE, "%d.%d.%d.%d", ucAddress[0], ucAddress[1], ucAddress[2], ucAddress[3]); } } } WSACleanup();
wahrscheinlich muss ich noch eine header-datei einfügen oder so...
bitte um hilfe!
-
Header und entsprechende Lib linken.
-
Original erstellt von Luckie:
Header und entsprechende Lib linken.Jo, das ist mir schon klar, dass ich die linken muss. ich weiss nur ned, welche ich dazu halt brauche und woher ich die dazu her bekomme!!
-
Für winsock must du die wsock32.lib mit linken.
Die ist Standartmäßig ab Windows 95 dabei.
-
Ich linke immer die ws2_32.lib und inkludiere die "winsock2.h"
-
@MiG2oo3:
Sorry, hab nicht dran gedacht, daß du noch nicht so viel Erfahrung mit C/C++ hast. Hier das Ganze für eine Konsolenanwendung, in kompilierbarer Form:#include <winsock.h> void GetIP(void) { struct hostent* h; WSADATA wsaData; UCHAR ucAddress[4]; CHAR szHostName[MAX_PATH]; int x; WSAStartup(MAKEWORD(1, 1), &wsaData); if(SOCKET_ERROR != gethostname(szHostName, sizeof(szHostName))) { if(NULL != (h = gethostbyname(szHostName))) { for(x = 0; (h->h_addr_list[x]); x++) { ucAddress[0] = h->h_addr_list[x][0]; ucAddress[1] = h->h_addr_list[x][1]; ucAddress[2] = h->h_addr_list[x][2]; ucAddress[3] = h->h_addr_list[x][3]; printf("%d - %d.%d.%d.%d\n", x, ucAddress[0], ucAddress[1], ucAddress[2], ucAddress[3]); } } } WSACleanup(); }
+ Lib wie oben erwähnt.
Ausgabe erfolgt auf dem Bildschirm, wenn nicht dann gab es einen Fehler.
-
ich wollte aber eigentlich den code fuer den builder und net fuer die console von c++
mal testen - vielleicht gehts ja doch!
-
Du bist aber auch mit nichts zufrieden! Du bist im WinAPI Forum, was hast du da anderes erwartet?