[Résolu] Placer le code source d'une page web en buffer (Winnet)

Placer le code source d'une page web en buffer (Winnet) [Résolu] - API Win32 - Programmation

Marsh Posté le 14-08-2009 à 15:55:58    

Bonjour à tous,  
 
   Voila, tout est dans le titre, j'essaie de développer une méthode permettant d'obtenir mon adresse IP publique (IP Internet), pour ce faire je vais interroger un site Web qui me la renvoi, je cherche donc a mettre cette page web en buffer de façon a récupérer cette adresse IP, contenue dans le code source de la page.  
 
   Jutilise les MFC avec Visual Studio 2005, et l'api Winnet.
 
   Voici ma méthode:

Code :
  1. bool CVpnP2pMainView::GetInternetIP()
  2. {
  3.    HINTERNET  InternetHandle;
  4.    HINTERNET  UrlHandle;
  5.    INTERNET_BUFFERS buffer;
  6.    InternetHandle = InternetOpen(L"", 0, 0, 0, 0);
  7.    if(InternetHandle != 0)
  8.    {
  9. OutputDebugString(L"InternetHandle OK" );
  10. UrlHandle = InternetOpenUrl(InternetHandle,
  11.                                                    L"http://checkip.dyndns.org",
  12.                                                    0,
  13.                                                    0,
  14.                                                    INTERNET_FLAG_NEED_FILE,
  15.                                                    0);
  16.              if(UrlHandle != 0)
  17.              {
  18.                          OutputDebugString(L"UrlHandle OK" );
  19.                          if(InternetReadFileExW(        UrlHandle,
  20.                                                                 &buffer,
  21.                                                                 0,
  22.                                                                 0) != 0)
  23.                          {
  24.                                       OutputDebugString(L"InternetReadFile OK" );
  25.                                       OutputDebugString((CString)(char*)buffer.lpvBuffer);
  26.                          }
  27.                          else       DBG(ERROR, FCT, _T("InternetReadFileExW failed with error 0x%x" ), GetLastError());
  28.                          InternetCloseHandle(UrlHandle);
  29.              }
  30.              InternetCloseHandle(InternetHandle);
  31.        }
  32. return true;
  33. }


 
J'obtiens les traces suivantes via DebugView après éxecution:
 

Citation :


[3036] InternetHandle OK
[3036] UrlHandle OK
[3036] VPN_P2P ==> ERROR   : CVpnP2pMainView::GetInternetIP : InternetReadFileExW failed with error 0x78


 
C'est donc l'API InternetReadFileExW qui pose problème, cependant je ne vois pas en quoi  :??:  
 
Si quelqu'un a déja tenter ce genre de chose, je suis ouvert a toute propositions
 
Merci.


Message édité par gaellm le 17-08-2009 à 08:57:26
Reply

Marsh Posté le 14-08-2009 à 15:55:58   

Reply

Marsh Posté le 16-08-2009 à 18:57:48    

Reply

Marsh Posté le 17-08-2009 à 08:56:14    

Merci, c'est exactement ce que je cherchais !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed