Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 18/11/2006
Black_Ocean's Avatar
Black_Ocean Black_Ocean is offline
Miembro
 
Join Date: Nov 2006
Posts: 128
Poder: 20
Black_Ocean Va por buen camino
Exclamation Necesito validar una cadena de IP y Puerto ingresado en un Edit1 (xx.xx.xx.xx:port)

Hola ClubDelphi!

Primero que nada... quiero felicitarlos por todos estos años de ayuda que han dado a todo los usuarios de Delphi en Internet Hoy me inscribí por primera vez acá y es mi primer posteo :P espero que me puedan ayudar

Bueno amigos... mi consulta es la siguiente:

Ando buscando una función que valide una IP y puerto ingresada por el usuario en un Edit con el siguiente formato:

xx.xx.xx.xx:Port

ejemplos

210.114.174.96:4480
128.114.63.15:3128
138.23.204.133:3128
138.23.204.133:3127
140.247.60.126:3128

En pocas palabras, lo que quiero es que valide ese formato de cadena ingresado por el usuario (formato para tipo proxy, socks 4 y socks 5)

Realmente la he buscado en todo internet y no he encontrado esta función para este requerimiento :S

De antemano, muchísimas gracias y espero que me puedan ayudar

Cordiales saludos

Last edited by Black_Ocean : 18/11/2006 at 00:12.
Reply With Quote
  #2  
Old 18/11/2006
seoane's Avatar
[seoane] seoane is offline
Miembro Premium
 
Join Date: Feb 2004
Location: A Coruña, España
Posts: 3,717
Poder: 26
seoane Va por buen camino
Vamos con un poco de código:
Código Delphi [-]
uses Winsock;

function Validar(Str: string): Boolean;
var
  i: integer;
  ip: string;
begin
  Result:= FALSE;
  if Pos(':',Str) > 0 then
  begin
    ip:= Copy(Str,1,Pos(':',Str)-1);
    Delete(Str,1,Pos(':',Str));
    Result:= (inet_addr(PChar(ip)) <> INADDR_NONE) and
      TryStrToInt(Str,i) and (i<65535) and (i>0);
  end;
end;

La función anterior separa en dos partes la cadena, la ip por un lado y el puerto por el otro. Luego intenta convertir la ip y el puerto a sus correspondientes valores binarios, si no puede quiere decir que no son validos.

Un ejemplo de como funciona:
Código Delphi [-]
// Estas espresiones devuelven TRUE
Validar('210.114.174.96:4480');  // La ip en formato decimal
Validar('0xd2.0x72.0xae.0x60:4480'); // La ip en formato hexadecimal
Validar('210.0x72.174.96:4480'); // La ip en formato mixto

// Estas devuelven FALSE
Validar('210.300.174.96:4480'); // Uno de los valores esta fuera del rango
Validar('210.hola.174.96:4480');  // Esto no es una ip
Validar('210.114.174.96:1000000'); // El puerto esta fuera del rango

Last edited by seoane : 18/11/2006 at 00:37.
Reply With Quote
  #3  
Old 18/11/2006
Black_Ocean's Avatar
Black_Ocean Black_Ocean is offline
Miembro
 
Join Date: Nov 2006
Posts: 128
Poder: 20
Black_Ocean Va por buen camino
Quote:
Originally Posted by seoane
Vamos con un poco de código:
Amigo, he probado tu código y me funciona perfectamente para mi requerimiento, realmente te has pasado, muy agradecido por la rápida y certera respuesta. Muy contento, realmente necesitaba mucho esta función! :P

Gracias a ti y a ClubDelphi por esto, estoy en deuda contigo

Gracias nuevamente

saludos
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Función PORT. para puerto LPT en XP vicruffo Varios 2 09/03/2007 23:21
Busco ordenador o portátil Arcioneo Varios 2 18/07/2006 13:49
Como se usa el Componente Serial Port en C# (VS2005)? z-7 .NET 0 16/12/2005 05:02
Verificar si el valor introducido en un edit1.text es un numero o una cadena ctronx Varios 6 26/06/2004 03:14


All times are GMT +2. The time now is 00:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi