Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
15-1207906711
ekto
2008-04-11 13:38
2008.05.25
Как настроить среду, чтобы


2-1209032542
Int23
2008-04-24 14:22
2008.05.25
Как убрать расшареное имя с папки


15-1207796490
Tirael
2008-04-10 07:01
2008.05.25
электричество


2-1209029866
deras
2008-04-24 13:37
2008.05.25
Как добавить элемент в DBLookupComboBox?


3-1197980803
Раиса
2007-12-18 15:26
2008.05.25
Несколько insert-ов (update,delete) в одной транзакции MY SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский