none
Detectar IP RRS feed

  • Pregunta

  • Hola

    Estoy usando lo siguiente para detectar IP de los visitantes al sitio

            Dim sip As String = Request.UserHostAddress
            Dim sips As String = Request.ServerVariables("REMOTE_ADDR")

    Activandolo en forma local, desde el IDE de VS ambos me dan sip = ::1

    ¿Esto es así?

    Puedo usarlo desde un servidor remoto?

    Gracias


    Pedro López


    • Editado Pearloga sábado, 9 de enero de 2016 19:33
    sábado, 9 de enero de 2016 19:28

Respuestas

  • Hola Pedro, el resultado que obtienes es correcto debido a que como cliente local, la IP que se identifica es la conocida dirección IP de LoopBack: 127.0.0.1 o ::1 o 0:0:0:0:0:0:0:1.

    Cuando ejecutes la aplicación en un servidor, Request.UserHostAddress te dará la IP del cliente remoto.

    Aquí puedes confirmar el uso de Request.UserHostAddress.

    https://msdn.microsoft.com/en-us/library/system.web.httprequest.userhostaddress(v=vs.110).aspx

    Espero haber respondido a tu pregunta.

    Leo.

    • Marcado como respuesta Pearloga sábado, 9 de enero de 2016 21:56
    sábado, 9 de enero de 2016 21:38
  • >>Cuando termine mi proyecto (en el cual habrá una encuesta) y lo suba a un hosting (Internet) ¿puedo identificar el IP de los que respondan la encuesta?

    podrias detectar la ip de internat asignada a los usuario que accedan a tu aplicacion

    NO podras detectar la ip concreta de la pc dentro de la red, por lo que si varios usuario acceden desde una misma red local (LAN) no podras identificarlos de forma individual

    esto es justamente lo que marcaba desde el principio cuando abri el debate por el planteo de tu consulta

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Pearloga domingo, 10 de enero de 2016 2:37
    domingo, 10 de enero de 2016 2:09

Todas las respuestas

  • Hola Pedro, el resultado que obtienes es correcto debido a que como cliente local, la IP que se identifica es la conocida dirección IP de LoopBack: 127.0.0.1 o ::1 o 0:0:0:0:0:0:0:1.

    Cuando ejecutes la aplicación en un servidor, Request.UserHostAddress te dará la IP del cliente remoto.

    Aquí puedes confirmar el uso de Request.UserHostAddress.

    https://msdn.microsoft.com/en-us/library/system.web.httprequest.userhostaddress(v=vs.110).aspx

    Espero haber respondido a tu pregunta.

    Leo.

    • Marcado como respuesta Pearloga sábado, 9 de enero de 2016 21:56
    sábado, 9 de enero de 2016 21:38
  • Gracias Leo

    Pedro López

    sábado, 9 de enero de 2016 21:57
  • >>Estoy usando lo siguiente para detectar IP de los visitantes al sitio

    pero donde hosteas el sitio web ? o sea es en la red local, o en un hosting de un proveedor

    porque imagino sabes que en un hosting no puede conocer la ip local de la pc del usuario que accede al sitio, solo podras conocer la ip de WAN, no la de LAN

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 9 de enero de 2016 22:07
  • Leandro

    Por ahora solo está como proyecto en mi PC 

    La idea es desarrollar une encuesta simple impidiendo que un mismo usuario o visitante responda más de una vez.

    Gracias

    PD no imagines que se algo de estos temas, mas facil es imaginar mi ignorancia


    Pedro López

    sábado, 9 de enero de 2016 23:06
  • >>Por ahora solo está como proyecto en mi PC

    ok pero va a seguir en tu pc ?

    porque si publicas en un hosting o algun servidor en internet esto no te va a funcionar


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 9 de enero de 2016 23:34
  • Hola Leandro, el código del compañero Pedro Request.UserHostAddress si funcionará también en Internet para conocer la IP publica del cliente remoto.

    Esa es la estrategia que sigo en mis sitios para detectar la IP remota del cliente.


    -- Leo

    domingo, 10 de enero de 2016 0:07
  • >>si funcionará también en Internet para conocer la IP publica del cliente remoto.

    si eso es correcto, pero sera la ip de WAN, no la ip de la pc del usuario

    por lo que si varios acceden desde la misma red LAN en el sitio el vera el mismo dato, siendo que son usuario diferentes los que acceden

    o sea no aplica para el objetivo que menciona

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    domingo, 10 de enero de 2016 0:10
  • En resumen, para no confundir a Pedro:

    Si Pedro quiere conocer la IP publica del cliente remoto, la instrucción Request.UserHostAddress es totalmente válida para ser utilizada en un servidor Web.

    Por otro lado, no hay forma de conocer la IP de la tarjeta de Red de un cliente remoto a no ser que esa IP sea una IP púbica.


    -- Leo

    domingo, 10 de enero de 2016 0:17
  • >>para no confundir a Pedro

    porque aclaras para no confundir ? yo creo que habia quedado muy claro desde el principio

    >>es totalmente válida para ser utilizada en un servidor Web.

    en uno que este en la red local

    si es un servidor web en un hosting puede seguir usando el Request.ServerVariables("REMOTE_ADDR") que es igual de util

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    domingo, 10 de enero de 2016 0:25
  • El compañero Pedro nunca dijo que quería la IP local del cliente.

    "Estoy usando lo siguiente para detectar IP de los visitantes al sitio"

    El dijo que al ejecutar localmente (no que quería la IP local):

    "Activandolo en forma local, desde el IDE de VS ambos me dan sip = ::1"

    Tu dices NO y yo digo SI. Si no pongo el post "Para no confundir", Pedro ya no sabrá si lo que tu dices es lo correcto o si lo que yo digo es lo correcto.

    Por eso es la aclaración de lo que yo creo es correcto.

    A final de cuenta, pedro es el que debe tener clara la respuesta :-)

    Un gusto dialogar contigo :-)


    -- Leo

    domingo, 10 de enero de 2016 0:33
  • Hola a ambos

    No pensaba desatar polémicas. Mi confusión parte de mi ignorancia.

    La pregunta concreta sería entonces. 

    Cuando termine mi proyecto (en el cual habrá una encuesta) y lo suba a un hosting (Internet) ¿puedo identificar el IP de los que respondan la encuesta?

    Si la respuesta es sí ¿como se hace?

    gracias un abrazo


    Pedro López

    domingo, 10 de enero de 2016 0:57
  • Aclaro una cosa

    El ambito en que se desarrollará es completamente privado y los usuarios potenciales son de un grupo cerrado que accederá solo con sus dispositivos personales.

    Nuevamente gracias


    Pedro López

    domingo, 10 de enero de 2016 1:02
  • Hola Pedro, si lo que deseas es conocer la IP pública desde la cual se conectan los distintos usuarios, entonces puedes utilizar Request.UserHostAddress.

    Espero haya yo entendido :-)


    -- Leo

    domingo, 10 de enero de 2016 2:00
  • >>Cuando termine mi proyecto (en el cual habrá una encuesta) y lo suba a un hosting (Internet) ¿puedo identificar el IP de los que respondan la encuesta?

    podrias detectar la ip de internat asignada a los usuario que accedan a tu aplicacion

    NO podras detectar la ip concreta de la pc dentro de la red, por lo que si varios usuario acceden desde una misma red local (LAN) no podras identificarlos de forma individual

    esto es justamente lo que marcaba desde el principio cuando abri el debate por el planteo de tu consulta

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Pearloga domingo, 10 de enero de 2016 2:37
    domingo, 10 de enero de 2016 2:09
  • Gracias a ambos

    Un abrazo


    Pedro López

    domingo, 10 de enero de 2016 2:39