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.

Detectando la Versión de SMB en JCIFS

Actualmente estoy utilizando la biblioteca de Java jcifs-ng para acceder a unidades SMB, y sé que admite varias versiones SMB. También sé cómo establecer las versiones mínima y máxima admitidas. Pero con fines de depuración, me gustaría saber qué versión ESTÁ REALMENTE en uso cuando obtengo información de directorio del servidor (es decir, cuál se ha negociado entre el servidor y mi cliente). ¿Alguien sabe cómo hacerlo programáticamente?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para determinar de manera programática la versión SMB negociada entre el servidor y el cliente al obtener información del directorio usando la biblioteca Java jcifs-ng, puedes utilizar el método SmbSession.get(SmbFile). Este método retorna un objeto SmbSession que contiene la información de dialecto negociada.

    Aquí tienes un ejemplo de código:

    SmbFile smbFile = new SmbFile("smb://servidor/compartir/directorio");
    SmbSession session = SmbSession.get(smbFile);
    System.out.println("Versión SMB negociada: " + session.getDialect());
    

    El código anterior obtiene el objeto SmbSession para el archivo SMB especificado y luego recupera la versión SMB negociada utilizando el método getDialect(). El resultado mostrará la versión utilizada.

    Por defecto, jcifs-ng negocia el uso de la versión SMB más alta posible admitida por el servidor y el cliente, dentro del rango especificado. Sin embargo, si deseas forzar una versión SMB específica, puedes utilizar el método setDefaultDialect() de la clase Config antes de crear un archivo SMB.

Comments are closed.