Adres IP

0

Mam takie pytanie. Chce napisać program, który wyświetli mi IP komputera na którym został uruchomiony. Jednak nie bardzo wiem jak to zrobić. Prosze o pomoc


1
Label1.Caption := GetIPAddress('');

a do uses dodaj JclSysInfo;

1

Hmm nawt nie widziałem że w jcl jest taka funkcja ,ale ja jednak wolę to z winsock;
Code:

uses Winsock;

Function Get_IP : String; // IP
var
   wVersionRequested:WORD;
   wsaData:TWSAData;
   p:PHostEnt;
   s:array[0..128] of char;
begin
   //Ładujemy bibliotekę Winsock
   wVersionRequested := MAKEWORD(1, 1);
   WSAStartup(wVersionRequested, wsaData);
   try
      GetHostName(@s, 128);
      p := GetHostByName(@s);
      Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
   finally
      //Zwalniamy Winsock
      WSACleanup;
   end;
end;

Function Get_HN : String; //Host name
var
   wVersionRequested:WORD;
   wsaData:TWSAData;
   p:PHostEnt;
   s:array[0..128] of char;
begin
 //Ładujemy bibliotekę Winsock
 wVersionRequested := MAKEWORD(1, 1);
 WSAStartup(wVersionRequested, wsaData);
 try
   GetHostName(@s, 128);
   p := GetHostByName(@s);
   Result := p^.h_Name;
 finally
   //Zwalniamy Winsock
   WSACleanup;
 end;
end;

Można to zrobić w jednej Procedurze ale mi tak wygodniej....

//masz racje..twoj kod jest o wiele 'prostszy i czytelniejszy no i latwieszy" [glowa] - lofix

0

Lub jesli ktos ma komponent IdIpWatch to wtedy mozna przypisac taki kod

Label1.Caption:=IdIPWatch1.LocalIP;
1

WIększość komponentów Indy ma tę własniść...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.