Obtener IP pública

Buenas, te cuento el problema. Tengo montado un IIS del que cuelga una web, pretendo recoger en el log las direcciones públicas de los visitantes a la página. Todas las visitas nos llegan a través de proxy y entonces en el log siempre me aparece la ip del mismo. ¿Cómo puedo obtener la ip pública de los visitantes?

4 Respuestas

Respuesta
1
Tengo que decirte que no es posible hacer eso si no tienes acceso al proxy.
Si tienes acceso, bien puedes hacer que en la info que mande añada la ip de quien usa el proxy o bien puedes consultarlo directamente en los logs del proxy donde quedan reflejadas las conexiones.
Gracias por responder ante todo, la ip me la están enviando pero no sé como cogerla. ¿Tengo qué tocar en las propiedades del servidor web o puedo hacerlo a través de código asp?
Espero tu respuesta, un saludo
Revisa en el log del servidor web a ver en que campo esta llegando la ip. Una vez sepas como se llama, puedes tratarla con asp.
http://www.microsoft.com/resources/documentation/IIS/6/all/techref/en-us/iisRG_LOG_9.mspx
En esta página tienes información de los logs del IIS.
Pégame la parte del código donde la recoges, ahí estas haciendo referencia a un campo de las cabeceras (headers) de http. Luego tienes que añadir esa parte de la cabecera al log del IIS para que quede registrado.
He conseguido recoger la ip que me envía el proxy a través de código ASP, pero ahora no sé como agregarla al log del IIS. ¿Sabes si esto es posible? ¿Se te ocurre alguna otra solución?
Espero tu respuesta, un saludo y gracias.
El código que utilizo es el que sigue: <%ip= Request.ServerVariables("HTTP_Client-IP")%>, efectivamente hago lo que comentas, pero no sé cómo agregar esta información al IIS, ¿sabes cómo?
Espero tu respuesta, un saludo.
Pero... HTTP_Client-IP es la ip de la maquina que accede al servidor, es decir la ip del proxy ¿no te aparece siempre %ip = ip. Del.proxy?
Te cuento, no tengo acceso al proxy, este es configurable "por otras personas", según ellos yo tengo que capturar una variable que me mandan que le llaman variable Client-IP, esta variable la recojo mediante código ASP y efectivamente estoy recogiendo la ip pública de los clientes. La ip del proxy me aparece en el log del IIS en el campo c-ip. Lo que pretendo es añadir la dirección IP que capturo mediante ASP al log del IIS, pero no sé si se puede hacer y si se hace cómo.
A ver, con asp no puedes modificar el log del ISS. El log del ISS se configura desde el propio menu del servidor.
Entre las opciones que tiene el IIS permite personalizar el log, que originalmente queda en un formato parecido a este:
#Fields: time c-ip cs-method cs-uri-stem sc-status cs-version
El campo como tu indicas de la ip de cliente (c-ip) que accede (sea un proxy o sea un cliente conectado directamente) pertenece a las cabeceras de HTTP y la puedes recoger en ASP como Client-IP para por ejemplo mostrarlo en la web o escribirlo en un fichero si lo deseas.
Claro, siempre puedes escribir a un fichero con asp. Usando las ServerVariables puedes recoger todos los valores.
Intenta hacerlo lo más parecido a un log estándar si luego deseas tratarlo con webalizer, awstat o cualquier frontend para logs.
Recuerda que un log normal no solo muestra los accesos a páginas sino también imágenes u otros elementos que tengas en la web y se acceda. Aunque si solo quieres controlar el acceso puedes obviar esto.
Respuesta
1
Trata de acceder a la configuración del proxy para que no te trille todas las IP's que le lleguen, efectivamente al IIS le llegará siempre la IP del PC del Proxy.
No es fácil lo que comentas, va a depender mucho de la configuración del proxy, de las posibilidades que tenga de dejar pasar ciertos parámetros...
Espero haberte orientado!, por favor, no olvides cerrar la pregunta para que otros me puedan preguntar!.
Pues tal y como lo tienes casi lo mejor es que pases del LOG del IIS, de hecho, casi nadie lo utiliza, te puedo recomendar alguno sencillo de instalar y que te recoge un montón de datos, además de gratis, ya está desarrollado:
http://www.metasun.com/products/metatraffic/
Espero haberte orientado!, por favor, no olvides cerrar la pregunta para que otros me puedan preguntar!.
Muy buenas, perdón por el retraso en responder pero he estado estos días muy "liao". El proxy como me dices me pasa una variable Client-IP, que debo de recoger. He conseguido recoger esta variable mediante código ASP, de esta forma: ip= Request.ServerVariables("HTTP_Client-IP"), hasta aquí bien. Mi duda está ahora en que no sé cómo incluir este dato en el log del IIS, otra forma que he pensado es construir mi propio log, no sé si esto se puede hacer. El programa que utilizo para analizar los logs es uno llamado SurfStats. Espero tu respuesta. Gracias y un saludo.
¿Te importaría valorarme o al menos cerrar la respuesta?.
Si no cierro preguntas, Todoexpertos.com no deja que me pregunten otras personas.
Respuesta
1
No se si hay alguna manera de hacerlo ya que en la cabecera quizás solo te envían la ip del proxy y no la real de la maquina, para eso seguro que necesitas software de terceros o no podrás.
Buenas, gracias por responder. Te cuento, la ip pública de las máquinas me las envía el proxy a través de una variable Client-IP, la cual recojo a través de código en ASP, pero ahora no sé cómo agregar esta información en el log del IIS. ¿Sabes cómo hacerlo? Espero tu respuesta, un saludo y gracias.
Comrpueba todas las opciones que tienes para activar en el log, no recuerdo si esa venia, pero si están por defecto no las pone todas y recuerdo que una era la propia ip del cliente, mira en las opciones y activalas todas para tener toda la información.
Respuesta
1
Tendrás que hacerlo con un script externo.
Busca Urchin en google, que seguro te puede servir.
Ujn saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas