Procedimiento Delphi que, a partir de una dirección IP, usuario, contraseña, protocolo y puerto, realiza la conexión usando un cliente específico según el protocolo: RDP, SFTP, HTTPS, SSH, Telnet, Red, VNC, … En función del protocolo, abrirá la conexión con mstsc.exe (Cliente de Escritorio Remoto), Filezilla, navegador web, PuTTY, VNC, etc.

Este procedimiento es útil para añadir una acción de «Conexión» o «Control remoto» a un equipo/dispositivo cuando lo tenemos inventariado en una aplicación. Suponemos, pues, que tenemos una aplicación con el inventario de activos de la organización (equipos PC, equipos servidores, electrónica de red, servidores físicos, servidores virtuales, sistemas de seguridad perimetral, routers, etc.). En dicha aplicación tendremos una ventana con los datos de cada dispositivo, entre ellos, la dirección IP, el protocolo de conexión al dispositivo, el puerto, el usuario y la contraseña (si aplica).

Procedimiento Delphi Pascal para conectar a un dispositivo mediante diferentes protocolos

Le añadiremos una opción, una mejora, que nos permitirá conectar al dispositivo elegido mediante un cliente. El cliente elegido para la conexión dependerá del protocolo asignado al dispositivo:

ClienteProtocolo
PuttySSH, Telnet
Navegador webHTTP, HTTPS
mstsc.exe (Cliente de Escritorio Remoto)RDP
Abrir carpeta con Explorador de WindowsRed
Filezilla ClientFTP, SFTP, FTPS
Ultra VNCVNC

El procedimiento de conexión, para personalizar el uso, obtendrá la ruta del ejecutable de PuTTY, Filezilla y Ultra VNC desde parámetros que almacena en base de datos. El resto de clientes para la conexión los obtiene del sistema (mstsc.exe), del navegador web por defecto o bien del Explorador de Windows.

Por lo tanto tendremos los siguientes parámetros almacenados en una tabla de la base de datos de la aplicación:

ParámetroUso
cliente_ftpRuta y ejecutable del software de cliente FTP que se usará para FTP, SFTP y FTPS
cliente_sshRuta y ejecutable del software de cliente SSH que se usará para SSH y Telnet
cliente_remotoRuta y ejecutable del software de control remoto que se usará para VNC

En los parámetros anteriores, la aplicación permite, por cada uno, elegir la ruta y también posibles parámetros a añadir al ejecutable.

El código fuente Pascal (Delphi) completo del procedimiento «conectar» será:

El procedimiento formatearIP usado anteriormente está disponible en el siguiente enlace:

El procedimiento para obtener la carpeta del sistema operativo es:

La función para obtener parámetros de la base de datos:

Siendo md un DataModule y tc un TQuery del DataModule.

En el uses de la unidad donde tengamos el procedimiento, añadiremos, al menos:

Para usar el procedimiento, en la aplicación, tendremos una acción del tipo «Conectar»:

Procedimiento Delphi Pascal para conectar a un dispositivo mediante diferentes protocolos

Añadiremos el siguiente código a la acción «Conectar»:

Ejecutando la aplicación, cuando el usuario seleccione un dispositivo de la lista «md.tcDispositivo» y pulse en «Conectar», la aplicación obtendrá el protocolo asignado a dicho dispositivo y ejecutará el cliente con el que abrirlo: PuTTY, Filezilla, mstsc, VNC, etc. Realizará la conexión con la IP del dispositivo.

En el caso del protocolo FTP, se le puede pasar usuario y contraseña, además de la IP y el puerto, para que haga la conexión completa.

Procedimiento Delphi Pascal para conectar a un dispositivo mediante diferentes protocolos