![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Funcion para validar IP
Hola que tal, alguien conoce, tiene o ha visto alguna función por ahi para validar la direccion IP que esta en un cuadro de texto (edit1). Se supone que es ingresada por el usuario.
Saludos y gracias!! |
#2
|
|||
|
|||
qué significa validar la IP? mirar si ya existe o mirar si está bien construida?
Si es la segunda, sólo tienes que controlar que sean 4 tuplas de numero inferiores a 255 y mayores o iguales a 0 separados por puntos Si es la primera, en mi web tienes dos demos de cómo capturar las IPs de una red que te puede servir para lo que quieres |
#3
|
|||
|
|||
Me referia a que si alguien tiene ECHA una funcion para validar la direccion IP que ha ingresado el usuario, queria saber si habia una función CONFIABLE que estuviera echa en algún lado, es decir validar en sintaxis y semantica pero no si este IP responde o esta activo.
|
#4
|
|||
|
|||
Pues hecha, lo que se dice hecha, no la tengo, pero tampoco lo veo demasiado difícil (a priori)
Básicamente seria recorrer con un bucle el string que contiene la IP Código:
respuesta := true; while i <= length(StrIP) do Código:
if StrIP[i] <> '.' then // no es '.' str := str + StrIP[i] else // es punto -> comprobamos número begin if TryStrToInt(str, myInt) then begin if not (myInt in [0..255]) then begin ShowMessage('IP incorrecta'); Respuesta := false; Break; end; end else begin ShowMessage('IP incorrecta'); Respuesta := false; Break; end; end; Bueno, espero que la idea te de pistas por donde ir |
#5
|
||||
|
||||
Otra forma:
Código:
function IsValidIP(S: String): Boolean; var Strings: TStringList; begin Result := false; Strings := TStringList.Create; Strings.Delimiter := '.'; Strings.DelimitedText := S; if Strings.Count <> 4 then exit; repeat Result := (StrToIntDef(Strings[0], -1) in [0..255]); Strings.Delete(0); until (Strings.Count = 0) or not Result; Strings.Free; end; Última edición por roman fecha: 30-09-2003 a las 17:07:46. |
#6
|
|||
|
|||
Cita:
![]() |
#7
|
||||
|
||||
Hola.
Si quieres afinar más tu algoritmo de validación. Puedes comprobar que la dirección IP sea una dirección de valida de clase A, B o C http://es.tldp.org/Manuales-LuCAS/GA...addresses.html Ejemplos de direcciones que no són validas : 127.0.0.1 (dirección de loopbak, aunque es una dirección valida no apunta a ninguna maquina sinó que enviará a si mismo cualquier paquete con esa dirección) 192.1698.0.0 (indica la red 192.168 y no una maquina) 10.255.255.255 (para hacer un broadcast a todos los nodos de la red 10) 254.0.0.1 (la red no es de clase A, B, C) Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). Última edición por guillotmarc fecha: 01-10-2003 a las 17:23:29. |
#8
|
|||
|
|||
Muchas gracias a todos!!
|
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|