Bonjour,
j'ai trouvé sur Internet comment trouver l'adresse IP interne.
Exisre-t-il un moyen de trouver l'adresse de l'IP externe lorsque
l'ordinateur est connecté à un site avec un un explorer tel que
Firefox ou Internet-explorer ?
Merci
Bonjour,
j'ai trouvé sur Internet comment trouver l'adresse IP interne.
Exisre-t-il un moyen de trouver l'adresse de l'IP externe lorsque
l'ordinateur est connecté à un site avec un un explorer tel que
Firefox ou Internet-explorer ?
Merci
Salut Pasqualini
Regarde ce Post, je ne sais pas si c'est ce que tu desire
Merci, je vais essayer et je dirai si cela convient.
Je travaille avec C++Builder XE.
La ligne :
génère une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 hWinInet = LoadLibrary("WININET.DLL"); //Chargement de la dll
"[BCC32 Erreur] Connexion.cpp(24): E2034 Impossible de convertir 'char const[12]' en 'const wchar_t *'
Contexte d'analyseur complet"
Comment faut-il alors déclarer la variable hWinInet ?
Merci
J'ai trouvé :
Toutefois cela me dit si l'ordinateur est connecté, mais ne donne pas l'adresse IP, ou les adresses IP, des sites affichés dans le navigateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 HMODULE hWinInet; . . hWinInet = LoadLibraryA("WININET.DLL"); //Chargement de la dll
Ce que cherche à obtenir c'est ce que fait le Widget "Network Meter" qui affiche, par exemple,
"Ext. IP 60.50.43.176".
En fait, j'obtiens l'adresse externe de mon PC en utilisant le composant TIdHttP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 AnsiString asAdresse = IdHTTP1->Get("http://iplookup.flashfxp.com/"); ShowMessage(asAdresse);
Pour ouvrir IE et recuperer la chaine de connection il est possible de faire comme ceci
.cpp
A partir de l'URL avec ShelleExecute on peut peut etre executer un ping sur cet URL et recuperer " 60.50.43.176 "
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include <utilcls.h> // <----- ne pas oublier #include <ComObj.hpp> // <----- utile dans certains cas //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; Variant vMSIEApp; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { // demarrer IE // Cree un objet unique non initialisé de la classe spécifiée // par le paramètre 'InternetExplorer.Application' try { vMSIEApp = Variant::GetActiveObject("InternetExplorer.Application"); } catch(...) { vMSIEApp = Variant::CreateObject("InternetExplorer.Application"); } //Rends l'application IE visible vMSIEApp.OlePropertySet("Visible", true); // permet d'attendre le chargement de la page while(vMSIEApp.OlePropertyGet("ReadyState") != READYSTATE_COMPLETE); //11 - LocationName: String vEIValue = vMSIEApp.OlePropertyGet("LocationName"); //12 - LocationURL: vEIValue = vMSIEApp.OlePropertyGet("LocationURL"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { //Fermer IE vMSIEApp.OleFunction("Quit"); // on libere les Variants vMSIEApp = Unassigned; } //---------------------------------------------------------------------------
J'ai essayé.
Cela a bien fonctionné une première fois.
Je n'ai pas compris pourquoi le programme lançait
une nouvelle instance de InternetExplorer.
Mais ensuite, sans rien changer j'ai le message suivant :
"Un arrêt du systèmea déjà été programmé, progID :
InternetExplorer application"
Si tu a essaye mon code avec le tien c'est normal qu'il y ai deux fois IE, tu peu t'en passer car tu recupere ton URL par un autre moyen, essaye avec ShellExecute, buffer recupere l'IP
Je n'ai pas teste il faudra surement adapter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ShellExecute(Form1->Handle, "open", "ping", http://iplookup.flashfxp.com/, buffer, SW_SHOWNORMAL);
Pour que le programme se compile et s'exécute, j'ai écrit :
Mais il n'y a rien dans le buffer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 wchar_t buffer[256]; ShellExecute(fConnexion->Handle, L"open", L"ping", L"http://iplookup.flashfxp.com/", buffer, SW_SHOWNORMAL ); AnsiString asBuffer = AnsiString(buffer); ShowMessage(asBuffer);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager