S1005403_RisCC/tftp_diag.py
2025-10-08 12:19:01 +02:00

41 lines
1.4 KiB
Python

"""
Script di diagnostica TFTP client.
Effettua upload di un file di test e logga dettagliatamente la risposta del server.
"""
import io
import logging
from target_simulator.utils.tftp_client import TFTPClient, TFTPError
# Configurazione logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("tftp_diag")
def tftp_diagnose(ip, port, remote_filename="MON:diag_test.txt"):
logger.info(f"[DIAG] Step 1: Creazione TFTPClient per {ip}:{port}")
client = TFTPClient(ip, port)
test_content = "diagnostic test\n"
in_memory_file = io.StringIO(test_content)
logger.info(f"[DIAG] Step 2: Upload di file di test '{remote_filename}'")
try:
success = client.upload(remote_filename, in_memory_file, mode="netascii")
if success:
logger.info(f"[DIAG] Step 3: Upload riuscito su '{remote_filename}'")
return True
else:
logger.error(f"[DIAG] Step 3: Upload fallito senza eccezione.")
return False
except TFTPError as e:
logger.error(f"[DIAG] Step 3: TFTPError: {e}")
return False
except Exception as e:
logger.error(f"[DIAG] Step 3: Eccezione generica: {e}")
import traceback
logger.error(traceback.format_exc())
return False
if __name__ == "__main__":
# Sostituisci con IP e porta del tuo server TFTP
ip = "127.0.0.1"
port = 50069
tftp_diagnose(ip, port)