Eigene IP auslesen
-
ohhhhh..
das habe ich jetzt noch nie gemacht...
bislang habe ich nur immer die standart bibliotheken nehmen müssen.
#include <iostream> usw.
kannste mir nen kleinen tipp geben ??
Gruß und Danke
andy_mann
-
Falls du VC++ 6 verwendest: Projekt > Einstellungen > Linker > Objekt-/Bibliothek-Module
Da dann einfach hinten dranhängen
-
mmhhh..
habe Ws2_32.lib unter den Angaben die Du gennant hast eingefügt.
Trotzdem selbe Fehlermeldung.Gruß
andy_mann
-
welche?
-
hallo....
winsock.h pringt fehlermeldung.
mhhhh..
nur zur Info,
ich benütze als Projekt
Win32 Console Application
und als File
C++ Source FileDanke für Eure Gedult.
Gruß
andy_mann
-
Und wenn du winsock.h weglässt? und nochmal: was für Fehlermeldungen?
-
jjjjuuuuuuuhhhhuuuuu......
vielen Dank....
Jetzt hat es geklappt.Ihr seit echt die besten.
Gruß
andy_mann
-
Erstens: Man sollte immer seine Fehlermeldungen angeben!
Zweitens: Man sagt an, wie die Lösung ausschaut, wenn man es geschafft hat.
-
Also 1.,
die Ws2_32.lib hat gefehlt.
"Falls du VC++ 6 verwendest: Projekt > Einstellungen > Linker > Objekt-/Bibliothek-Module "und hier der Source:
#include <iostream> #include <winsock2.h> #include <stdio.h> using namespace std; BOOL IP_auslesen(char* IP_ADRESSE) { struct hostent* h; WSADATA wsaData; UCHAR ucAddress[4]; CHAR szHostName[MAX_PATH]; int x; WSAStartup(MAKEWORD(1, 1), &wsaData); if(SOCKET_ERROR != gethostname(szHostName, MAX_COMPUTERNAME_LENGTH + 1)) { 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(); return TRUE; } int main () { char IP_Adresse[16]; IP_auslesen(IP_Adresse); printf(IP_Adresse); getchar(); return 0; }
Gruß
andy_mann
-
1.) Verwende doch bitte Code-Tags
2.) Es funktioniert ohne windows.h- der dürfte dann doch BOOL eigentlich gar nicht kennen
-
flenders schrieb:
Es funktioniert ohne windows.h
Bei mir ned!
-
Bei mir ja acuh nicht
- aber es steht eben nicht in seinem angeblich funktionierenden Code, deswegen das
-
Ah so!
Und mit inet_ntoa() sparte man sich auch ein wenig Code...
-
ich würde eher auf ihplapi.dll zurückgreifen. die ist ab Win98 dabei und ist eher für diesen zwecken "gedacht" - hostent gibt nicht immer die gewünschte IP.
-
ScriptGod schrieb:
ich würde eher auf ihplapi.dll zurückgreifen. die ist aber Win98 dabei und ist eher für diesen zwecken eher "gedacht" - hostent gibt nicht immer die gewünschte IP.
Würdest du auch so nett sein und sagen, zu welcher API diese DLL gehört bzw. die entsprechenden Funktionsnamen preisgeben.
-