Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1029 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C/C++]récupérer la source d'une page html

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++]récupérer la source d'une page html

n°368237
CtHuLhU50
Posté le 22-04-2003 à 10:45:46  profilanswer
 

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 :
  1. #include <stdlib.h>
  2. #include <winsock2.h>
  3. #include <stdio.h>
  4.    #pragma comment(lib, "ws2_32.lib" )
  5. char dns[50] = "mon-ftp.no-ip.com";
  6. char *ip;
  7. int i;
  8. char* dns2ip(char* ip);
  9.    void main(void)
  10.     {
  11.         WSADATA WSAData;
  12.         WSAStartup(MAKEWORD(2,0), &WSAData);
  13.    
  14.         SOCKET sock;
  15.         SOCKADDR_IN sin;
  16.     char buffer[1024];
  17.     char canal[50] = "GET /v3dw/ajout.php HTTP/1.0\nAccept: */*\n\n";
  18.             sock = socket(AF_INET, SOCK_STREAM, 0);
  19. ip=dns2ip(dns);
  20.             sin.sin_addr.s_addr = inet_addr(ip);        sin.sin_family = AF_INET;
  21.         sin.sin_port = htons(80);   
  22.         connect(sock, (SOCKADDR *)&sin, sizeof(sin));   
  23.     send(sock, canal, strlen(canal), 0);
  24. i = recv(c, buffer, sizeof(buffer), 0); 
  25. buffer[i]='\0';
  26. printf("%s",buffer);
  27.   closesocket(sock);   
  28.         WSACleanup();
  29. getchar();
  30. }
  31. char* dns2ip(char* ip)
  32. {
  33.     WSADATA WSAData;
  34.    
  35.     struct hostent *host;
  36.     struct in_addr **a;
  37.     if (WSAStartup(MAKEWORD(2,0), &WSAData) == SOCKET_ERROR) {
  38.         printf("\nProbleme de Winsock ...\n\n" );
  39.         return 0;
  40.         }
  41.     if(host = gethostbyname(ip)) {
  42.            
  43.             return(inet_ntoa(**(struct in_addr **)host->h_addr_list));
  44.      
  45.          
  46.     }
  47.     else  return(ip);
  48.    
  49.    WSACleanup();   
  50. }


 
 
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 ?

mood
Publicité
Posté le 22-04-2003 à 10:45:46  profilanswer
 

n°368247
Jar Jar
Intaigriste
Posté le 22-04-2003 à 10:53:24  profilanswer
 

Bin faut utiliser HTTP/1.1, avec la commande Host.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°368252
CtHuLhU50
Posté le 22-04-2003 à 10:56:51  profilanswer
 

tu as un exaple d entete http ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C/C++]récupérer la source d'une page html

 

Sujets relatifs
[html]Mettre une image pour un bouton de formulaire ?debutant total a besoin d'aide sur php et html
[HTML] Menu en màj automatique pour page sans cadreRécupérer les mots de passe d'un forum phpBB !
peut on mettre plusieurs style CSS pour les liens sur une meme page[HTML/PHP] Afficher la derniere date de modification
[ MySQL ] Récuperer l'ID lors d'un insert avec ID auto-increment...[PHP] Intercépter un chemain pour l'utiliser comme source d'une image?
[HTML/CSS] orientaiton du texte à 90° 
Plus de sujets relatifs à : [C/C++]récupérer la source d'une page html


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR