Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thalesoli

Verificação se o IP é Válido

Recommended Posts

A função abaixo é utilizada para verificar se um IP (internet protocol) foi informado de maneira correta

 

function IsWrongIP(ip: string): Boolean;var   z:integer;   i: byte;   st: array[1..3] of byte;const   ziff = ['0'..'9'];begin   st[1] := 0;   st[2] := 0;   st[3] := 0;   z := 0;   Result := False;   for i := 1 to Length(ip) do if ip[i] in ziff then   else   begin	  if ip[i] = '.' then	  begin		 Inc(z);		 if z < 4 then st[z] := i		 else		 begin			IsWrongIP := True;			Exit;		 end;	  end	  else	  begin		 IsWrongIP := True;		 Exit;	  end;   end;   if (z <> 3) or (st[1] < 2) or (st[3] = Length(ip)) or (st[1] + 2 > st[2])or	 (st[2] + 2 > st[3]) or (st[1] > 4) or (st[2] > st[1] + 4) or (st[3] >st[2] + 4) then   begin	  IsWrongIP := True;	  Exit;   end;   z := StrToInt(Copy(ip, 1, st[1] - 1));   if (z > 255) or (ip[1] = '0') then   begin	  IsWrongIP := True;	  Exit;   end;   z := StrToInt(Copy(ip, st[1] + 1, st[2] - st[1] - 1));   if (z > 255) or ((z <> 0) and (ip[st[1] + 1] = '0')) then   begin	  IsWrongIP := True;	  Exit;   end;   z := StrToInt(Copy(ip, st[2] + 1, st[3] - st[2] - 1));   if (z > 255) or ((z <> 0) and (ip[st[2] + 1] = '0')) then   begin	  IsWrongIP := True;	  Exit;   end;   z := StrToInt(Copy(ip, st[3] + 1, Length(ip) - st[3]));   if (z > 255) or ((z <> 0) and (ip[st[3] + 1] = '0')) then   begin	  IsWrongIP := True;	  Exit;   end;end;

para usar basta seguir o esquema abaixo

 

....  if IsWrongIP(Edit1.Text) then	ShowMessage('IP Inválido!')  else	ShowMessage('IP OK!');

 

Espero ter ajudado com esta dica

 

falow!!!

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.