Ip internet

Soyez le premier à donner votre avis sur cette source.

Vue 9 342 fois - Téléchargée 1 410 fois

Description

Encore un! Mais il est très simple et efficace. Il fonctionne même en réseau ou derrière un proxy. Il donne l'IP Internet, pas l'IP local qui, elle, est beaucoup plus simple à obtenir.
Le principe:
Le programme se connecte à un site qui renvoie votre adresse IP. Ceci à l'aide d'un composant "WebBrowser". La page renvoyée est transformée en chaîne, puis on y cherche l'adresse IP.
Pour plus de sécurité et en cas d'échec de la 1ère connexion, le programme se connecte à un autre site semblable...

Source / Exemple :


unit Unit1;
{IP Internet par Caribensila}
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, OleCtrls, SHDocVw, ExtCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    WebBrowser1: TWebBrowser;
    procedure Button1Click(Sender: TObject);
    procedure WebBrowser1DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
var
  Tentative : Byte;

procedure Connexion;
begin
  if (Tentative = 1) then { 1ère tentative}
     Form1.WebBrowser1.Navigate('http://checkip.dyndns.org');
  if (Tentative = 2) then { 2ème tentative}
     Form1.WebBrowser1.Navigate('http://www.adresseip.com');
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  S, IP : String;
  i :Integer;
begin
beep;
  // La page téléchargée est réduite en chaîne.
  S := WebBrowser1.OleObject.Document.Body.InnerHTML;
  If (Tentative = 2) then
    begin
      // L'adresse IP est extraite de cette chaîne.
      if (Pos('Votre adresse IP est',S) <> 0) then
        begin
          i := Pos('Votre adresse IP est',S)+67;
          While (S[i] <> ' ') do
            begin
              IP := IP + S[i];
              inc(i);
            end;
          Edit1.Text := IP;
          Button1.Enabled := true;
          WebBrowser1.Stop;
        end
      else
        begin
          Edit1.Text := 'Echec! Vérifier connexion.';
          Button1.Enabled := true;
        end;
    end;
  If (Tentative = 1) then
    begin
      if (Pos('Current IP Address: ',S) <> 0) then
        begin
          i := 21;
          While (S[i] <> ' ') do
            begin
              IP := IP + S[i];
              inc(i);
            end;
          Edit1.Text := IP;
          Button1.Enabled := true;
          WebBrowser1.Stop;
        end
      else
        begin
          Tentative := 2;
          Connexion;
        end;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Tentative := 1; { Initialiser le drapeau Tentative.}
  Edit1.Text := 'Patientez !';
  Button1.Enabled := false;
  Connexion;
end;

end.

Conclusion :


Fait sur Delphi 7. Commentaires bienvenus...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

JulioDelphi
Messages postés
2349
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
12 -
HAAAAAAAAAAAAA
j'ai cru que c'etait un code qui me la chopait a travers le routeur lol
mais il est bon ce ptit code.
s'tu veux le pousser un peux, ajoute une case a cocher "test de BP" puis si elle est cochée, ton WebBrowser ira sur http://mire.ipadsl.net/speedtest/speedtest4.php et recuperera le resultat du test :)

perso etant toujours avec un navigateur ouvert(firefox pour ne pas le citer) je clic sur mon favoris pour avoir l'ip ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.