Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Конвертировать 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо