Форум: "Сети";
Текущий архив: 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