Tout d'abord, ajouter la classe Winsock
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Winsock;
Ajouter ensuite le code ci-dessous dans l'une de vos procédures (ici
Button1Click)
Notez qu'ici, l'IP est stocké dans la variable ip_machine
procedure TForm1.Button1Click(Sender:TObject);
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
ip_machine:string;
begin
WSAStartup($101, GInitData);
ip_machine := '';
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
// l'IP est stockée ci-dessous
ip_machine := StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
Des questions ? Rejoignez nous sur le forum...