Buscar

Stringip para longip(real) e longip(real) para string(ip)

Código

// funcao para transformar ip em longip e longip em ip
// Pode servir para uma varredura de ip
// Obs.: junto vai uma funcao de calculo pra pontecia já que
// novato ainda em delphi e nao achei funcao nem ^ funcionou

function potencia(n,p:integer) : longint ;
var
  r,i:integer ;

begin
  if (p = 0) then r := 1
  else
  begin
    r:=1;
    for i:=1 to p do
      begin
        r := r * n;
      end;
  end;
  potencia := r;
end;

function iptolongip(ip: string ) : real ;
var
  A : array[0..3] of integer  ;
  i : integer;
  c,b : real;
begin
  for i:=0 to 2 do
    begin
      A[i] := strtoint(copy(ip,1,pos('.',ip)-1 )) ;
      delete(ip,1,pos('.',ip));
    end;
  A[3] := strtoint(ip) ;
  b := 0 ;
  for i:=0 to 3 do
   begin
     c := potencia(256,3-i);
     b := b + (A[i] * c);
   end;
  iptolongip := b ;
end;

function longiptoip(longip: real) : string ;
var
  ip : string;
  i : integer ;
  a,temp : real ;

begin
  i:= 3 ;
  while i >= 0 do
    begin
      a := potencia(256,i);
      temp := int(longip / a) ;
      ip := ip + floattostr(temp) + '.' ;
      longip := longip - (temp * a) ;
      i := i-1;
    end;
  delete(ip,length(ip),1) ;
  longiptoip := ip ;
end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Rede
Adicionada dia: 24/07/04
Por: Rodrigo Biassusi
Visualizada: 1564 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009