CtHuLhU50 | Salut a tous voila je voudrais récupérer la source d 'une page html avec les sockets sans utilisé le MFC !
J'ai fait une prog ki permet de faire ca mais ca ne marche ke pour certain page pas pour tous !
Code :
- #include <stdlib.h>
- #include <winsock2.h>
- #include <stdio.h>
- #pragma comment(lib, "ws2_32.lib" )
- char dns[50] = "mon-ftp.no-ip.com";
- char *ip;
- int i;
- char* dns2ip(char* ip);
- void main(void)
- {
- WSADATA WSAData;
- WSAStartup(MAKEWORD(2,0), &WSAData);
-
- SOCKET sock;
- SOCKADDR_IN sin;
- char buffer[1024];
- char canal[50] = "GET /v3dw/ajout.php HTTP/1.0\nAccept: */*\n\n";
- sock = socket(AF_INET, SOCK_STREAM, 0);
- ip=dns2ip(dns);
- sin.sin_addr.s_addr = inet_addr(ip); sin.sin_family = AF_INET;
- sin.sin_port = htons(80);
- connect(sock, (SOCKADDR *)&sin, sizeof(sin));
- send(sock, canal, strlen(canal), 0);
- i = recv(c, buffer, sizeof(buffer), 0);
- buffer[i]='\0';
- printf("%s",buffer);
- closesocket(sock);
- WSACleanup();
- getchar();
- }
- char* dns2ip(char* ip)
- {
- WSADATA WSAData;
-
- struct hostent *host;
- struct in_addr **a;
- if (WSAStartup(MAKEWORD(2,0), &WSAData) == SOCKET_ERROR) {
- printf("\nProbleme de Winsock ...\n\n" );
- return 0;
- }
- if(host = gethostbyname(ip)) {
-
- return(inet_ntoa(**(struct in_addr **)host->h_addr_list));
-
-
- }
- else return(ip);
-
- WSACleanup();
- }
|
Ce code source marche si la dns se rapporte juste a un seul site comme dans l example ci dessus, mais si la dns comporte plusieur site comme fre par example http://login.free.fr donc avec le login qui est variable le source ne marche plus ! comment faire ? |