Ping – Valor incorrecto para la opción -s, rango válido es de 1 a 4.
Tengo código en Java en el que estoy tratando de obtener la entrada del usuario para varios parámetros como el tamaño del paquete, la cantidad de paquetes y otros parámetros de ping que se pueden pasar como comando como -I, -i, -g, etc.
Mi código Java utiliza servicios web para invocar o ejecutar el comando en el servidor Solaris.
System.out.println(2, "ping " + prefijo + " " + ip + " " + tamañoPaquete + " " + cantidadPaquetes);
runSystemCommand("ping " + param + " " + ip + " " + tamaño + " " + cantidad));
<p>public static String runSystemCommand(String comand) {
String s = "", v = "";
try {
Process p = Runtime.getRuntime().exec(comand);
BufferedReader inputStream = new BufferedReader(new InputStreamReader(p.getInputStream()));
// leyendo la secuencia de salida del comando
while ((s = inputStream.readLine()) != null) {
Trace.out(1, s);
v += s + "\n";
}
return v;
} catch (Exception e) {
Trace.out(1, "Error: " + e);
}
return v;
}
donde param, ip, tamaño y cantidad serán tomados del formulario de swing de Java.
Al dar los valores para estos campos en el formulario y pasarlos como se muestra arriba, por ejemplo: param=”-s”, ip=”110.121.23.23″, tamaño=”40″ y cantidad=”6″, formando la declaración ping -s 110.121.23.23 40 6
. Estoy recibiendo la salida del servidor Valor incorrecto para la opción -s, el rango válido es de 1 a 4.
Mientras que ejecutar la declaración anterior da la salida esperada.
También ejecutar el comando de esta forma:
runSystemCommand("ping -s " + ip + " 40 6"));
funciona, pero aquí no se pasan otros parámetros y las cosas son bastante constantes.
davy.ai
Solución
El mensaje de error sugiere que el valor proporcionado para el parámetro
size
(packageSize
en el código Java) no está dentro del rango válido. El rango válido para la opción-s
del comandoping
va desde 1 hasta 65507.Asegúrese de que el valor proporcionado para
packageSize
esté dentro de este rango. Además, verifique si otras opciones, como-I
,-i
y-g
, son compatibles con el comandoping
en su servidor Solaris y úselas según sea necesario.Si el problema persiste, intente ejecutar el comando directamente en el servidor Solaris para ver si funciona. Si es así, entonces es posible que el problema esté en el código Java o en la forma en que se está ejecutando el comando desde Java.
Por último, es importante tener en cuenta que pasar valores directamente desde un formulario de entrada de usuario a un comando del sistema no es seguro y puede llevar a vulnerabilidades de seguridad. Se recomienda sanitizar y validar la entrada del usuario antes de pasarla a un comando del sistema.