Récupérer son ip correspondant a son ip internet

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 516 fois - Téléchargée 35 fois

Contenu du snippet

Voici comment faire pour obtenir son adresse IP de l'interface connectée sur internet [qui peut être differente de l'IP local si vous avez plusieurs interfaces reseaux]

Source de cette article : http://delphi.about.com/library/weekly/aa103100a.htm

l'article de fabiin pour obtenir son adresse local : http://www.delphifr.com/article.aspx?Val=49.

Source / Exemple :


uses Winsock; 

function GetIPFromHost
(var HostName, IPaddr, WSAErr: string): Boolean; 
type 
  Name = array[0..100] of Char; 
  PName = ^Name; 
var 
  HEnt: pHostEnt; 
  HName: PName; 
  WSAData: TWSAData; 
  i: Integer; 
begin 
  Result := False;     
  if WSAStartup($0101, WSAData) <> 0 then begin 
    WSAErr := 'Winsock is not responding."'; 
    Exit; 
  end; 
  IPaddr := ''; 
  New(HName); 
  if GetHostName(HName^, SizeOf(Name)) = 0 then
  begin 
    HostName := StrPas(HName^); 
    HEnt := GetHostByName(HName^); 
    for i := 0 to HEnt^.h_length - 1 do 
     IPaddr :=
      Concat(IPaddr,
      IntToStr(Ord(HEnt^.h_addr_list^[i])) + '.'); 
    SetLength(IPaddr, Length(IPaddr) - 1); 
    Result := True; 
  end
  else begin 
   case WSAGetLastError of
    WSANOTINITIALISED:WSAErr:='WSANotInitialised'; 
    WSAENETDOWN      :WSAErr:='WSAENetDown'; 
    WSAEINPROGRESS   :WSAErr:='WSAEInProgress'; 
   end; 
  end; 
  Dispose(HName); 
  WSACleanup; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  Host, IP, Err: string; 
begin 
  if GetIPFromHost(Host, IP, Err) then begin 
    Edit1.Text := Host; 
    Edit2.Text := IP; 
  end 
  else 
    MessageDlg(Err, mtError, [mbOk], 0); 
end;

A voir également

Ajouter un commentaire

Commentaires

powerf
Messages postés
8
Date d'inscription
dimanche 6 août 2006
Statut
Membre
Dernière intervention
21 octobre 2008
-
ça revois l"ip local !!!!
Bacterius
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
6 -
Ip Local, désolé :(

Cordialement, Bacterius !
Nero`
Messages postés
30
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2013
-
Bidon !!!
ça revois l'ip local :(
JulioDelphi
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
12 -
idem, je suis derriere un routeur
cs_iocha
Messages postés
22
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
11 septembre 2007
-
Ca ne marche pas, cette fonction me renvoi l'adresse locale et pas celle internet
???

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.