
27.04.2015, 17:17
|
 |
LMD-DML
|
|
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
|
|
Это работает под D7
Код:
uses Winsock;
function GetIP(Host : String) : 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 := 'Не найден!';
ZeroMemory(@Buffer, SizeOf(Buffer));
StrpCopy(Buffer, Host);
phe :=GetHostByName(buffer);
if phe = nil then begin
WSACleanup;
Exit;
end;
try
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[i] <> nil do begin
result:=StrPas(inet_ntoa(pptr^[i]^));
Inc(I);
end;
finally
WSACleanup;
end;
end;
function GetHost(IP : String) : string;
var
phe : PHostEnt;
Buffer : array [0..63] of char;
GInitData : TWSADATA;
ia : LongInt;
begin
WSAStartup($101, GInitData);
Result := 'Не найден!';
ZeroMemory(@Buffer, SizeOf(Buffer));
StrpCopy(Buffer, IP);
ia := inet_addr(Buffer);
phe := GetHostByAddr(@ia, SizeOf(Buffer), PF_INET);//GetHostByName(buffer);
if phe = nil then Exit;
Result := StrPas(Phe^.h_name);
WSACleanup;
end;
|