Советы по Delphi

         

Как получить IP-адрес или имя хоста на клиенте?


Олег Кулабухов приводит следующий код:

Используем WinSocks API, описанные в модуле WinSocks.pas

    uses
WinSock;

procedure GetHostInfo(var Name, Address: string);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
{ no error checking...}


WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Address := Format('%d.%d.%d.%d',[
Byte(h_addr^[0]),
Byte(h_addr^[1]),
Byte(h_addr^[2]),
Byte(h_addr^[3])]);
WSACleanup;
end;

Кроме того, можно просто бросить TCP компонент с закладки Internet на форму и использовать его свойства.

    Memo1.Lines.Add(TCP1.LocalHostName);
Memo1.Lines.Add(TCP1.LocalIp);

[001926]



Содержание раздела