Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

Преобразовать айпи в длинный тип   Найти похожие ветки 

 
WebSqlNeederr   (2007-08-16 22:46) [0]

есть например стандартный вид айпи 212.42.81.15 а нужно его преобразовать в длинный вид, что то типа 6483746263. Есть ли в Делфи функция?


 
easy ©   (2007-08-16 23:52) [1]

inet_addr("212.42.81.15");


 
Anatoly Podgoretsky ©   (2007-08-17 07:48) [2]

> WebSqlNeederr  (16.08.2007 22:46:00)  [0]

Int32 не может хранить 6483746263


 
WebSQLNeederr   (2007-08-17 09:29) [3]

inet_addr("212.42.81.15"); а какой модуль подключить нужно ?


 
umbra ©   (2007-08-17 10:30) [4]


> а какой модуль подключить нужно ?
>

winsock


 
DVM ©   (2007-08-17 10:46) [5]

function InetAddr(const AHost: string): integer;
var
 PHost:PChar;
 HostEnt: PHostEnt;
begin
 if AHost = "" then
   result := INADDR_NONE
 else
   begin
     PHost := PChar(AHost);
     Result := inet_addr(PHost);
     if Result = INADDR_NONE then
       begin
         HostEnt := GetHostByName(PHost);
         if HostEnt <> nil then
           Result := integer(pointer(HostEnt^.h_addr^)^);
       end;
   end;
end;


 
DVM ©   (2007-08-17 10:47) [6]

или альтернатива такая:


function IpToLong(const 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;


 
orinoko   (2007-08-21 14:48) [7]

у меня есть такое:

function TIncomModule.AddrTcpToDWORD(SAdr: string;var dwAddr:cardinal):boolean;
var i,p: integer;
   C: word;
begin
result:=false;
dwAddr:=0;
if SAdr="" then exit;
SAdr:=SAdr+".";
for i:=1 to 4 do
  begin
  p:=pos(".",SAdr);
  if p=0 then exit;
  c:=StrToInt(Copy(SAdr,1,p-1));
  if c>255 then exit;
  dwAddr:=(dwAddr shl 8) + C;
  delete(SAdr,1,p);
  end;
result:=true;
end;

function TIncomModule.DWORDToAddrTcp(dwAddr:cardinal;var SAdr: string):boolean;
var i: integer;
begin
result:=false;
SAdr:="";
for i:=0 to 3 do
  begin
  SAdr:=IntToStr((dwAddr shr (i*8))and 255)+SAdr;
  if i<>3 then SAdr:="."+SAdr;
  end;
end;



Страницы: 1 вся ветка

Текущий архив: 2008.05.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
2-1209713192
SergeyS
2008-05-02 11:26
2008.05.25
Помогите, пожалуйста.


2-1209137825
Damien
2008-04-25 19:37
2008.05.25
Рисунок на окне


2-1209108268
worldmen
2008-04-25 11:24
2008.05.25
Открыть файл в RichEdit только для чтения


4-1189155433
ter
2007-09-07 12:57
2008.05.25
Загрузка kernel mode драйвера из памяти


2-1208965466
Johnnnnnn
2008-04-23 19:44
2008.05.25
input type=file change value, kak?