Java - filtrar ip

 
Vista:

filtrar ip

Publicado por Mario (1 intervención) el 26/03/2008 01:36:04
hola! tengo el siguiente drama, tengo que crear un programa q me valide ip's correctas llevo lo sig:

import javax.swing.JOptionPane;

public class laboraratorio2{

public static void main(String[] args){

char retry='s';
while (retry=='s'){

String oracion = JOptionPane.showInputDialog("Ingresa una ip:");

boolean continua = true;

oracion = oracion.trim();

int cont=0;

System.out.println(oracion);

boolean esvalida = false;

int largo=oracion.length();

int punto = oracion.indexOf('.');

if (largo>15){

continua=false;

}

if (continua){

for (int iii=0;iii<largo;iii++){

char caracter=oracion.charAt(iii);

if (caracter>48 && caracter<57 || caracter=='.'){

if (caracter=='.'){

char temp1caracter=oracion.charAt(iii+1);

cont++;

if (temp1caracter=='.'){

continua= false;

iii=largo;

}
}
}

else{

continua= false;

iii=largo;

}
}
}

if (continua){

if (cont!=3){

continua= false;
}
}

String cadena1 =oracion.substring(punto+1,largo);

System.out.println(cadena1);

int largo2=cadena1.length();

int punto2 = cadena1.indexOf('.');

String cadena2 =cadena1.substring(punto2+1,largo2);

System.out.println(cadena2);

int punto3 = cadena2.indexOf('.');

int largo3=cadena2.length();

String cadena3 =cadena2.substring(punto3+1,largo3);

System.out.println(cadena3);

if (continua){

int tempvalor1 = Integer.parseInt(oracion.substring(0,punto));

System.out.println(tempvalor1);

if (tempvalor1>255 || tempvalor1<0){

continua= false;

}

}

if (continua){

int tempvalor2 = Integer.parseInt(cadena1.substring(0,punto2));

System.out.println(tempvalor2);

if (tempvalor2>255 || tempvalor2<0){

continua= false;

}

}

if (continua){

int tempvalor3 = Integer.parseInt(cadena2.substring(0,punto3));

System.out.println(tempvalor3);

if (tempvalor3>255 || tempvalor3<0){

continua= false;

}

}

if (continua){

int tempvalor4 = Integer.parseInt(cadena3);

System.out.println(tempvalor4);

if (tempvalor4>255 || tempvalor4<0){

continua= false;

}

else{

esvalida=true;

}

}

System.out.println("final");

// termina aqui

if (esvalida){

JOptionPane.showMessageDialog(null,"La ip es válida");

}

else{

JOptionPane.showMessageDialog(null,"La ip es inválida");

}

String denuevo = JOptionPane.showInputDialog("Desea continuar s/n:");
char restar=denuevo.charAt(0);
retry=restar;
}
}
}

Pero no me valida la ip 0.0.0.0 :( help!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:filtrar ip

Publicado por Tom (1831 intervenciones) el 26/03/2008 16:32:38
Seguro que tampoco "te valida" la 9.9.9.9
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:filtrar ip

Publicado por mario (622 intervenciones) el 26/03/2008 19:32:17
en lugar de hacer todo ese proceso deberias de utilizar una expresion regular.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:filtrar ip

Publicado por RaStRaK (1 intervención) el 24/07/2008 16:24:24
Tambien puedes usar una mascara para capturar la IP en vez de usar una "oracion" y asi te evitas ciertas validaciones (como la longitud).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar