Получить имя компьютера по IP

Советы » TCP/IP » Получить имя компьютера по IP

uses

WinSock; function

LocalIP: string

; type

TaPInAddr = array

[0..10] of

PInAddr; PaPInAddr = ^TaPInAddr; var

phe: PHostEnt; pptr: PaPInAddr; Buffer: array

[0..63] of

Char; I: Integer; GInitData: TWSAData; begin

WSAStartup($101, GInitData); Result := ''; 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

Result := inet_ntoa(pptr^[I]^); Inc(I); end

; WSACleanup; end

; function

IPAddrToName(IPAddr: string

): string

; var

SockAddrIn: TSockAddrIn; HostEnt: PHostEnt; WSAData: TWSAData; begin

WSAStartup($101, WSAData); SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr)); HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET); if

HostEnt <> nil

then

Result := StrPas(Hostent^.h_name) else

Result := ''; end

; procedure

TForm1.Button1Click(Sender: TObject); begin

ShowMessage(IPAddrToName(LocalIp)); end

; {**************************************} // Function to get the IP Address from a Host function

GetIPFromHost(const

HostName: string

): string

; type

TaPInAddr = array

[0..10] of

PInAddr; PaPInAddr = ^TaPInAddr; var

phe: PHostEnt; pptr: PaPInAddr; i: Integer; GInitData: TWSAData; begin

WSAStartup($101, GInitData); Result := ''; phe := GetHostByName(PChar(HostName)); if

phe = nil

then

Exit; pPtr := PaPInAddr(phe^.h_addr_list); i := 0; while

pPtr^[i] <> nil

do

begin

Result := inet_ntoa(pptr^[i]^); Inc(i); end

; WSACleanup; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2023 - All Rights Reserved - www.delphirus.com