![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Конвертировать IP адрес из строки в какой ни числовой тип... ;) [D7, WinXP]
Салат © (2007-03-01 10:35:00)Подскажите пожалуйста, есть ли готовые функции по переводу IP адреса из строки в числовой тип (longword например) и его восстановление обратно в строковый тип?
Функция для перевода IP в DWord есть, её написал некий Roni Havas (IP2HEX). А вот обратной функции я не нашел...
IP2HEX - http://www.sources.ru/delphi/delphi_convert_normal_ip_to_dword.shtml
Салат (2007-03-01 11:03:00) [1]Большое спасибо!
Сергей М. (2007-03-01 10:48:00) [2]см. inet_addr(), inet_ntoa() (Winsock.pas)
Dmitrij_K (2007-03-01 10:43:00) [3]CRTSOCK.pas
Function IpToLong(ip:string):LongInt;
var
x,i:byte;
ipx:array[0..3] of byte;
v:integer;
begin
Result:=0;
longint(ipx):=0; i:=0;
for x:=1 to length(ip) do
if ip[x]='.' then begin
inc(i);
if i=4 then exit;
end else begin
if not (ip[x] in ['0'..'9']) then exit;
v:=ipx[i]*10+ord(ip[x])-ord('0');
if v>255 then exit;
ipx[i]:=v;
end;
result:=longint(ipx);
end;
Function LongToIp(Long:LongInt):string;
var
ipx:array[0..3] of byte;
i:byte;
begin
longint(ipx):=long;
Result:='';
for i:=0 to 3 do result:=result+IntToStr(ipx[i])+'.';
SetLength(Result,Length(Result)-1);
end;