Con este artículo pretendemos explicar en qué consiste el proyecto «Aviso Cambio IP Pública», para qué sirve, cómo se hizo (con Delphi, PHP y MySQL) y cómo podéis utilizarlo. Todo lo incluido es gratuito/free y también incluimos el código fuente tanto del formulario PHP como de la aplicación (Delphi).
Cómo se hizo el proyecto Aviso Cambio IP Pública
Con este artículo pretendemos explicar cómo hicimos el proyecto «Aviso Cambio IP Pública»: dado el creciente número de usuarios que utilizan Intenet para conectarse remotamente a otros PCs, por ejemplo desde el PC de su trabajo al PC de su casa y teniendo en cuenta que contratar una IP fija cuesta unos 12 euros al mes, decidimos realizar este proyecto que, como todo en nuestra web, es gratuito y no tiene ningún tipo de software malicioso (por lo que podéis descargar el código fuente de todo lo que utilizamos para este proyecto).
Este proyecto se basa principalmente en dos módulos:
- Por un lado la aplicación AjpdSoft Aviso Cambio IP Pública (totalmente gratuita/free): ha sido realizada en Delphi 6, dicha aplicación obtiene la IP pública (IP con la que nos identificamos en Internet) del PC donde se ejecuta y si detecta que ha cambiado con respecto a la última vez que realizó la comprobación puede avisar del cambio de varias formas:
- Envío de Email: permite enviar la nueva IP a las dos cuentas de email especificadas (admite servidores de email con autenticación). Permite personalizar el texto del mensaje y el asunto. Esta función la implementamos utilizando los componentes que Delphi incluye para ello: TIdSMTP (para conexión con el servidor SMTP y envío del email) y TIdMessage para componer los datos del email.
- PC Remoto: permite guardar la nueva IP en otro PC remoto (que puede estar ubicado en cualquier parte del mundo) utilizando Socket (conexión directa por puerto). Para esta opción es recomendable que el PC que hará de Servidor (el que recibirá las IPs de los PCs clientes) tenga IP Pública fija. Este PC Servidor deberá tener la opción «Hacer que este PC ser servidor de IPs» activada. Esta función la implementamos utilizando los componentes que Delphi incluye para Socket: TServerSocket (se activará en el PC configurado como Servidor de IPs, este componente será el que realice la conexión entre el cliente el servidor), TClientSocket (utilizado para el envío de los datos: usuario, contraseña, IP, fecha de cambio, acción a realizar). TClientSocket es utilizado tanto por el PC cliente como por el PC Servidor de IPs. Por medio de este componente el Servidor recibirá qué acción debe realizar: ‘PASOCONTRASEÑANOVALIDA’, ‘PASOUSUARIONOEXISTE’, ‘PASOFINALSERVIDOR’, ‘PASODATOS’, ‘PASOOBTIP’,’PASOFINAL’. Las nueva IP y la fecha de cambio se guardará en el servidor en un fichero de texto plano (con formato INI). Obviamente, en el PC que hara de servidor de IPs debe estar abierto el puerto que se decida utilizar para la conexión (por defecto el 8887), con lo cual, si se dispone de cortafuegos habrá que abrir este puerto.
- Servidor de BD: permite guardar la nueva IP en un servidor de bases de datos (MySQL) remoto (puede estar ubicado en cualquier parte del mundo), es conveniente que el Servidor de BD tenga IP fija. Dicho servidor (al que se conectará el cliente) deberá tener instalado MySQL Server y el puerto correspondiente abierto en el cortafuegos o router para permitir conexiones externas. El PC cliente se conecta al PC Servidor de MySQL Server utilizando un componente que NO incluye Delphi pero que es totalmente gratuito llamado Zeosdbo, este componente se conecta a MySQL Server de forma nativa (no necesita Borland Database Engine ni Driver ODBC, sólo una librería). En el Servidor deberemos crear un esquema nuevo (base de datos) o utilizar uno existente y crear una tabla para almacenar los usuarios y las IPs. En esta opción (Servidor de BD) hemos incluido la posibilidad de crear la tabla necesaria para alojar los datos de los clientes (IP, Fecha de cambio, usuario, contraseña y otro dato). También incluimos el código fuente del formulario PHP que se puede «colgar» en el servidor web para que el usuario consulte la IP.
- Por otro lado, en el Servidor de Bases de Datos (si se ha utilizado esta opción en el programa Aviso Cambio IP pública), podremos colocar el fichero php que se incluye en AjpdSoft Aviso Cambio IP Pública para que cualquier usuario pueda consultar su IP mediante un formulario web, desde cualquier parte del mundo, poniendo en el navegador de Internet la IP/URL del Servidor Web y el nombre de usuario y contraseña.
Novedad importante Aviso Cambio IP
Debido al incremento de usuarios que han descargado AjpdSoft Aviso Cambio IP Pública y debido a que ha sido publicado en Softonic y PortalProgramas (entre otros) hemos habilitado un servidor externo [[YA NO ESTÁ DISPONIBLE]] para guardar las IP de los usuarios. Para utilizar esta nueva opción es suficiente con descargar la versión actual del programa (3.3.9.552 del 8 de febrero de 2008) o superior pulsando aquí y marcar la opción «Si cambia la IP guardar en Base de Datos«:
A continuación pulsaremos en «Acceso BD» para introducir el usuario y contraseña que necesitaremos para saber nuestra la IP pública en cualquier momento:
Pulsaremos en «Guardar en BD» para verificar que no existe un usuario con este nombre y para guardar el usuario en la base de datos. Si todo es correcto mostrará una aviso como este:
Por último pulsaremos en «Cerrar y guardar» para guardar la configuración actual:
Con esta configuración cada vez que varíe la IP podremos consultarla desde la propia aplicación, pulsando en «Obtener IP Servidor BD«:
Introduciremos nuestro usuario y contraseña y pulsaremos en «Obtener IP Servidor BD«:
Nos mostrará la IP pública actual del usuario introducido, la fecha y hora de cambio de la IP y el campo libre «Otro dato»:
De esta forma y SIN CONOCIMIENTOS DE BASES DE DATOS podremos saber en cualquier momento nuestra IP pública. Sólo será necesario disponer de la aplicación AjpdSoft Aviso Cambio IP Pública que ocupa 3 MB y no necesita instalación (disponible siempre desde aquí).
Como hemos comentado anteriormente en nuestra web, Proyecto A, podéis descargar el código fuente de ambas utilidades (programa y formulario web) TOTALMENTE GRATUITO/FREE pulsando aquí. Si eres desarrollador podrás hacer las modificaciones/añadidos que estimes oportunos y podrás comprobar que ESTÁ LIBRE DE CUALQUIER SOFTWARE MALICIOSO.