-TOC, TOC -¿Quién es?

Aunque hoy en día ya hasta tu cuñado usa una VPN turca para ver Netflix más barato, a veces sigue siendo útil conocer la IP desde la que un cliente se conecta a tu aplicación.

Tu cuñado preparándose para hacerte spoiler de tu serie preferida
Electrical engineering photo created by freepik - www.freepik.com

En las aplicaciones de Velneo nativas tenemos varias funciones para conocer este dato, pero cuando utilizamos vModApache la cosa se complica, aquí parece se han olvidado de incluir alguna función como theRequest.ipAddress() o similar como disponen en otras plataformas.

Pero gracias al servidor Apache (que tiene más recursos que McGyver con una caja de clips) podemos conseguirlo añadiendo una cabecera que contenga la IP y luego leyéndola desde un proceso Velneo.

Incluir Fichero %APACHE%/conf/extra/vhosts.conf

<Location /senda_base>
setHandler velneo
[VelneoMode SERVER]
Vrl vatp[/s]://usuario:contraseña@servidor[:NUM_PUERTO]/ID_INSTANCIA
RequestHeader set VMODAPACHE_REMOTE_ADDR "%{REMOTE_ADDR}s"
</Location>

Proceso Javascript con estilo «Accesible web»

var sRemoteAddr = theRequest.header("VMODAPACHE_REMOTE_ADDR");
theResponse.setBody("Tu dirección IP es: " + sRemoteAddr);

En caso de usar vModApache en un servidor que está detrás de un proxy este método devolverá la IP del mismo, pero si el proxy está correctamente configurado la IP del cliente debe aparecer en la cabecera X-Forwarded-For

Dominio al que se ha enviado la petición

Con este método podemos pasar otras variables del servidor Apache a Velneo, por ejemplo, si tenemos una instancia con un proceso web que debe responder de manera diferente según el dominio al que se accede (https://cliente-1.mi-super-app.com, https://cliente-2.mi-super-app.com) utilizando la variable HTTP_HOST

<Location /senda_base>
setHandler velneo
[VelneoMode SERVER]
Vrl vatp[/s]://usuario:contraseña@servidor[:NUM_PUERTO]/ID_INSTANCIA
RequestHeader set VMODAPACHE_REMOTE_ADDR "%{REMOTE_ADDR}s"
RequestHeader set VMODAPACHE_HTTP_HOST "%{HTTP_HOST}s"
</Location>

Proceso Javascript con estilo «Accesible web»

var sRemoteAddr = theRequest.header("VMODAPACHE_REMOTE_ADDR");
var sHttpHost = theRequest.header("VMODAPACHE_HTTP_HOST");
theResponse.setBody("Bienvenido a " + sHttpHost  + ", tu dirección IP es: " + sRemoteAddr);
Pedro Porlán
pporlan@gmail.com

Pedro Porlán es Ingeniero Técnico Industrial y trabaja como programador en Click Aplicaciones, donde desarrolla y mantiene aplicaciones en Velneo 6x y 7. Además ha trabajado en diversas empresas creando y manteniendo soluciones basadas VB6, C++, LAMP, Oracle APEX...

No Comments

Post A Comment

Información básica sobre Protección de Datos: Responsable: Francisco José Vila Martín. Finalidad: Gestionar y moderar los comentarios. Legitimación: Tu consentimiento. Destinatarios: Tus datos se alojarán en los servidores de Web Empresa S.L. (UE). Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos, así como otros derechos, como se explica en la información adicional. Información adicional: Puedes consultar la información adicional y detallada sobre protección de datos personales en mi Política de Privacidad.

Pin It on Pinterest