WAN IP Funktion
-
Der Code oben enthält keine groben Fehler. Der "funzt".
Poste mal wie und wo Du "wan_ip ( char IP[] )" aufrufst.
-
char buffer[0x1000]; wan_ip(buffer);Ich hoffe doch, dass jetzt nicht kommt: "Ohh, du Affe, das kann auch gar nicht funktionieren...".
Obwohl ich es mir denken kann >_>
-
Du übergibst eine Variable an "wan_ip ()" aber machst damit in der Funktion (fast) nichts. Funktioniert die printf-Ausgabe in "wan_ip ()".
-
nein....
Da kommen nur so ASCII-Zeichen, die bei leerem Speicher oder bei einer Speicher-Verletzung auftreten usw..
-
Bau mal "Debug-Ausgaben" in die Funktion und poste die Ausgabe :
(...) hNet = InternetOpen("R.O.S.E", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); printf("hNet = %X \n",hNet); // DEBUG (...) hFile = InternetOpenUrl(hNet, "http://checkip.dyndns.org", NULL, 0, INTERNET_FLAG_RELOAD, NULL); printf("hFile = %X \n",hFile); // DEBUG (...) // printf("%s", content); // <- den raus ! (...)
-
warum überprüfst du die rückgabewerte der einzelnen funktionen nicht?
-
hFile 0x00000000 void *
hNet 0x00cc0004 void *
-
GetLastError() ...
-
wip schrieb:
hFile 0x00000000 void *
hNet 0x00cc0004 void *Oha. Der Aufruf von "InternetOpenUrl ()" ging schief (weil hFile = 0).
Also rausfinden, was schief gelaufen ist. Dazu kann man GetLastError () nehmen. Poste mal die Ausgabe :(...) hFile = InternetOpenUrl(hNet, "http://checkip.dyndns.org", NULL, 0, INTERNET_FLAG_RELOAD, NULL); // printf("hFile = %X \n",hFile); // DEBUG printf("GetLastError () = %i \n", GetLastError ()); // DEBUG (...)
-
Dein Internet ist kaputt.
-
HINTERNET hNet, hFile; hNet = InternetOpen("", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); printf("hNet = %X", hNet); hFile = InternetOpenUrl(hNet, "http://checkip.dyndns.org", NULL, 0, INTERNET_FLAG_RELOAD, NULL); printf("hFile = %X", hFile); printf("GetLastError () = %i \n", GetLastError ());hNet = CC0004
hFile = 0
GetLastError () = 12006
-
GetLastError () = 12006
12006 ERROR_INTERNET_UNRECOGNIZED_SCHEME : Das URL-Schema wurde nicht erkannt oder wird nicht unterstützt.
Soll heissen, dass irgendwas an der Syntax der URL von "http://checkip.dyndns.org" nicht stimmt. Aber was ?
Probier mal so : "http://checkip.dyndns.org/".
Funktioniert wenigstens "http://www.google.com/" ?
-
Es funktioiert gar nichts bei dem InternetOpenUrl.
In C++ funktioniert es irgendwie mit
const std::basic_string<TCHAR>& url
-
poste mal ein vollständiges beispiel mit main...
-
Ev. UNICODE eingeschaltet ? Probier dann so :
(...) hFile = InternetOpenUrlW (hNet, L"http://checkip.dyndns.org", NULL, 0, INTERNET_FLAG_RELOAD, NULL); (...)
-
Ja, bin ich blöd ^^
Bei anderen Codes stand auch ein L
aber ich wusste nicht so genau, dass das so relevant ist, weil ich auch nicht genau wusste, was das L heißt.
Jetzt geht es danke
danke euch allen
-
das hätte doch aber einen compiler-fehler geben müssen????????