Winsock.. Hilfe, bitte..
-
man was bist du für ein noob bei inet_addr musse ne ip angeben und keine url
-
Ok, danke.
Aber womit muss ich das ersetzen, damit ich eine URI angeben kann, falls das überhaupt möglich ist?
-
Probier erstmal ob das Programm generell läuft. Besorg Dir mit "ping" die IP von google und schreib sie dort rein.
-
winsck schrieb:
Hm, gibt es irgendwo eine kleine Zusammenfassung, wofür diese *.lib s sind, und was man damit machen kann?
Das steht bei den jeweiligen Funktionen in der MSDN.
winsck schrieb:
achja, und das ShellExecute funktioniert leider immer noch nicht...
ShellExecute(NULL, "open", "ReadMe.txt", path, 0, 0);path = "C:\Programme"
Datei: C:\Programm\ReadMe.txtSiehe: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39369.html bzw.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp (Parameterbeschreibung)Desweiteren siehe: http://c-worker.ch/tuts.php ^^
-
winsck schrieb:
Ok, danke.
Aber womit muss ich das ersetzen, damit ich eine URI angeben kann, falls das überhaupt möglich ist?getaddrinfo
-
Erstmal: Danke euch allen.
Dann: Ping -> IP, Habe ich schon vor langer Zeit gemacht, und nebenbei die Seite hier immer aktualisiert. Leider ist mir nicht aufgefallen, dass es schon eine 2. Seite gibt, und ich dachte, es hätte keiner zurückgeschrieben...Ich habe das jetzt mal mit ethereal gescannt:
char buf[300] = "POST /CPanel-gotragnarok/login.php HTTP/1.1\nHost: gro.game-host.org\nUser-Agent: Mozilla/5.0 (Windows; U;Windows NT 5.0;en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3\nAccept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,/;q=0.5\nAccept-Language: en-us,en;q=0.5\nAccept-Encoding: gzip,deflate\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\nKeep-Alive: 300\nConnection: keep-alive\nReferer: http://gro.game-host.org/CPanel-gotragnarok/login.php\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 44\n\nlogin_user=test&login_pass=test&action=login";
Ich habe hier eine Seite gefunden, an der ich das prima testen kann..
nur leider muss ich an
schicken
und mit der IP72.232.18.202
krieg ich doch nur
hin, oder?
gibt es nicht irgendwie soetwas in der art:
addr.sin_addr.s_addr = inet_ >>str<< addr("gro.game-host.org");
anstatt
addr.sin_addr.s_addr=inet_addr("72.232.18.202");
-
winsck schrieb:
gibt es nicht irgendwie soetwas in der art:
addr.sin_addr.s_addr = inet_ >>str<< addr("gro.game-host.org");Guckst du hier:
http://msdn2.microsoft.com/en-us/library/ms738524.aspx
Da steht auch gleich ein Anwendungsbeispiel dabei.Gruss,
DeSoVoDaMu
-
Hi, ich kann mir denken, dass ich nerve, aber ich kriege es immer noch nicht hin

struct hostent* remoteHost; FILE *fp; int check; SOCKET s; SOCKADDR_IN addr; WSADATA wsaData; char buf[] = "POST /CPanel-gotragnarok/login.php HTTP/1.1\nHost: gro.game-host.org\nUser-Agent: Mozilla/5.0 (Windows; U;Windows NT 5.0;en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3\nAccept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\nAccept-Language: en-us,en;q=0.5\nAccept-Encoding: gzip,deflate\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\nKeep-Alive: 300\nConnection: keep-alive\nReferer: http://gro.game-host.org/CPanel-gotragnarok/login.php\nContent-Type: application/x-www-form-urlencoded\nContent-Length: 44\n\nlogin_user=test&login_pass=test&action=login"; check = WSAStartup(MAKEWORD(2,2), &wsaData); if(check != 0) return; MessageBox(NULL, "started", 0, 0); s = socket(AF_INET,SOCK_STREAM,0); if(s == INVALID_SOCKET) { MessageBox(NULL, "socket missglückt", 0, 0); return; } else MessageBox(NULL, "socket geglückt", 0, 0); /*****///remoteHost = gethostbyname("http://gro.game-host.org/CPanel-gotragnarok/login.php");/*****/ memset(&addr, 0, sizeof(SOCKADDR_IN)); addr.sin_family = AF_INET; addr.sin_port = htons(80); addr.sin_addr.s_addr = inet_addr("72.232.18.202"); /*****///remoteHost->h_addr_list[0];/*****/ check = connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN)); if(check == SOCKET_ERROR) { MessageBox(NULL, "connection gescheitert", 0, 0); return; } else MessageBox(NULL, "connected", 0, 0); check = send(s, buf, strlen(buf), 0); if(check==0) { MessageBox(NULL, "nicht gesendet", 0, 0); return; } else if(check == SOCKET_ERROR) { MessageBox(NULL, "send error", 0, 0); return; } MessageBox(NULL, "sended", 0, 0); check = recv(s, buf, 300, 0); MessageBox(NULL, "recv", 0, 0); if(check == 0) { MessageBox(NULL, "nicht mehr connected", 0, 0); return; } else if(check == SOCKET_ERROR) { MessageBox(NULL, "recv error", 0, 0); return; } buf[check]='\0'; MessageBox(NULL, buf, 0, 0); fp = fopen("hisock.txt","wt"); fprintf(fp, "%s", buf); fclose(fp); closesocket(s);1. Wie schaffe ich das jetzt mit diesem gethostbyname?
2. Ich bekomme soetwas zurück:HTTP/1.1 200 OK
Date: Mon, 23 Apr 2007 11:57:11 GMT
Server: Apache/2.2.3 (Debian) PHP/5.2.0-8
X-Powered-By: PHP/5.2.0-8
Content-Length: 3610
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition
Aber wie bekomm ich denn jetzt das zurück, was zum Beispiel bei dem gezeigten Prozess im Internet Browser angezeigt wird?
In diesem Fall, das, in dem steht, dass es ein falscher Login war..
Also eigentlich der HTML Code der derzeitigen Seite..Ich hoffe, dass ihr mir dabei noch einmal helfen könnt

-
Kann mir keiner helfen?

Für mich ist das sehr wichtig
-
Das "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition" gehört doch schon zum HTML Code. Lies doch einfach weiter vom Socket dann kommt sicher der Rest.
-
Hmm, du könntest Recht haben...
dann muss ich das Array, worin das Response gespeichert wird, größer machen ._.
-
Ne du musst das Array nicht größer machen, sondern du musst recv in einer Schleife aufrufen.