gaellm | 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 :
- bool CVpnP2pMainView::GetInternetIP()
- {
- HINTERNET InternetHandle;
- HINTERNET UrlHandle;
- INTERNET_BUFFERS buffer;
- InternetHandle = InternetOpen(L"", 0, 0, 0, 0);
- if(InternetHandle != 0)
- {
- OutputDebugString(L"InternetHandle OK" );
- UrlHandle = InternetOpenUrl(InternetHandle,
- L"http://checkip.dyndns.org",
- 0,
- 0,
- INTERNET_FLAG_NEED_FILE,
- 0);
- if(UrlHandle != 0)
- {
- OutputDebugString(L"UrlHandle OK" );
- if(InternetReadFileExW( UrlHandle,
- &buffer,
- 0,
- 0) != 0)
- {
- OutputDebugString(L"InternetReadFile OK" );
- OutputDebugString((CString)(char*)buffer.lpvBuffer);
- }
- else DBG(ERROR, FCT, _T("InternetReadFileExW failed with error 0x%x" ), GetLastError());
- InternetCloseHandle(UrlHandle);
- }
- InternetCloseHandle(InternetHandle);
- }
- return true;
- }
|
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
|