es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , ,

Answer

  1. Avatar for 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 comando ping 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 comando ping 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.

Comments are closed.