Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] validar ip

Estas en el tema de validar ip en el foro de Javascript en Foros del Web. Buen día amigos del foro Recurro nuevamente a ustedes en busca de ayuda, esta vez para realizar una función que valide direcciones ip dentro de ...
  #1 (permalink)  
Antiguo 03/07/2019, 08:49
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 6 años, 5 meses
Puntos: 0
Pregunta validar ip

Buen día amigos del foro

Recurro nuevamente a ustedes en busca de ayuda, esta vez para realizar una función que valide direcciones ip dentro de un campo tipo textarea.

Yo tengo esta función :

Código PHP:

function validateIp(idForm)
{

    
object=document.getElementById(idForm);
    
valueForm=object.value;
 

    var 
patronIp=new RegExp("^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$");

    if(
valueForm.search(patronIp)==0)
    {

        
valores=valueForm.split(".");
        if(
valores[0]<=255 && valores[1]<=255 && valores[2]<=255 && valores[3]<=255)
        {

            
object.style.color="#000";
            return;
        }
    }

    
object.style.color="#f00";


Ella valida la primera direccion ip que se escribe de manera perfecta, pero como es un textarea no valida las demas que se escriben, la idea es que valide cada una de ellas separadas por un salto de linea y cuando se precione el boton enviar el valide si todas son correctas o si alguna esta incorrecta devuelva un alert y no deje enviar el formulario.

En el textarea se van a escribir una debajo de la otra, pero cuando se escribe una segunda direccion ip falla.

Si me pueden ayudar con alguna otra funcion o corregirme la funcion.

Muchas gracias de antemano por su ayuda y su valioso tiempo amigos mios
  #2 (permalink)  
Antiguo 03/07/2019, 11:36
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.553
Antigüedad: 11 años, 8 meses
Puntos: 1085
Respuesta: validar ip

Aquí tienes son 10 USD, un café o una caguama a consideración :D

Código HTML:
Ver original
  1.     function validar_txt(){
  2.         var status = true, validar = new RegExp("^[0-9]{2,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"), miTextarea = document.getElementById('id_textarea'), miTextarea_values = miTextarea.value.split("\n");
  3.         for(var input of miTextarea_values){
  4.             if(status){
  5.                 status = validar.test(input);
  6.             }
  7.         }
  8.         console.log(status);
  9.     }
  10.  
  11. <textarea name="id_textarea" id="id_textarea" onkeyup="validar_txt()" style="width:300px;height:200px"></textarea>
  #3 (permalink)  
Antiguo 04/07/2019, 08:26
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 6 años, 5 meses
Puntos: 0
De acuerdo Respuesta: validar ip

Cita:
Iniciado por ArturoGallegos Ver Mensaje
[/HIGHLIGHT]
hola ArturoGallegos muchisimas gracias por responder pero ya lo logre solventar con un amigo

Aqui pongo el codigo por si alguien lo necesita Saludos y Muchas Gracias

Código HTML:
<script>

function validateIp(ip) {
  var patronIp = new RegExp("^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$");
  var valores;

  
  if(ip.search(patronIp) !== 0) {
    return false
  }

  valores = ip.split("."); 

  return valores[0] <= 255 && valores[1] <= 255 && valores[2] <= 255 && valores[3] <= 255
}

function validateForm(idForm) {
  var object = document.getElementById(idForm);
  var valueForm = object.value.split('\n'); 

  var isValid = valueForm.every(validateIp) 

  if (isValid) {
    object.style.color = "#000"; 
    return; 
  }

  object.style.color = "#f00";
}

</script> 
  #4 (permalink)  
Antiguo 04/07/2019, 08:28
 
Fecha de Ingreso: junio-2013
Mensajes: 94
Antigüedad: 6 años, 5 meses
Puntos: 0
Respuesta: validar ip

hola ArturoGallegos muchisimas gracias por responder pero ya lo logre solventar con un amigo

Aqui pongo el codigo por si alguien lo necesita Saludos y Muchas Gracias

Código PHP:
<script>

function 
validateIp(ip) {
  var 
patronIp = new RegExp("^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$");
  var 
valores;

  
  if(
ip.search(patronIp) !== 0) {
    return 
false
  
}

  
valores ip.split("."); 

  return 
valores[0] <= 255 && valores[1] <= 255 && valores[2] <= 255 && valores[3] <= 255
}

function 
validateForm(idForm) {
  var 
object document.getElementById(idForm);
  var 
valueForm object.value.split('\n'); 

  var 
isValid valueForm.every(validateIp

  if (
isValid) {
    
object.style.color "#000"
    return; 
  }

  
object.style.color "#f00";
}

</script> 



La zona horaria es GMT -6. Ahora son las 16:26.