none
Como obtener la IP del cliente que se conecta a mi servidor ? RRS feed

  • Pregunta

  • Hola

    Desarrollo una aplicacion WebForms donde nesecito  obtener la Ip del cliente que se conecta a mi sitio web

    ... encontre este codigo y solo me devuelve esta cadena  "::1"... Como puedo obtener la IP de mi cliente ?

     protected void Page_Load(object sender, EventArgs e)
            {
    
                if (Request.RequestType.Equals("POST")|| Request.RequestType.Equals("GET"))
                {
                    Engine.EngineUtil Funcion = new Engine.EngineUtil();
                    string k = Funcion.GetIpAddress(Request);
                }
            }
    esta es la funcion que devuelve la cadna Ip
            public string GetIpAddress(System.Web.HttpRequest request)
            {
    
                    // Recuperamos la IP de la máquina del cliente
    
                    // Primero comprobamos si se accede desde un proxy
    
                    string ipAddress1 = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    
                    // Acceso desde una máquina particular
    
                    string ipAddress2 = request.ServerVariables["REMOTE_ADDR"];
    
    
    
                    string ipAddress = string.IsNullOrEmpty(ipAddress1) ? ipAddress2 : ipAddress1;
    
    
    
                    // Devolvemos la ip
    
                    return ipAddress;
    
    
            }



    EFRAIN MEJIAS C VALENCIA - VENEZUELA


    jueves, 23 de agosto de 2018 14:50

Respuestas

  • Esta bien como lo tienes, request.ServerVariables["REMOTE_ADDR"]  te da la direccion del cliente.

    "::1" es la direccion correcta del llamante. Significa que estas conectando desde localhost (el navegador esta en la misma maquina que el servidor), y que estas conectando por IPv6 en lugar de IPv4, por eso te sale "::1" que es el equivalente en IPv6 del tipico "127.0.01" que probablemente esperabas encontrarte en IPv4.

    Probablemente no tendras este problema cuando lo pongas en produccion porque seguramente solo tendras conectividad en IPv4 y no te llegara ninguna conexion en IPv6. Pero deberias tenerlo en cuenta para el futuro porque antes o despues IPv6 acabara imponiendose, asi que conviene que lo dejes previsto en tu aplicacion y aceptes las direcciones IPv6 si es que te llega alguna.

    jueves, 23 de agosto de 2018 15:48
  • hola

    Esta correcto como lo realizas

    ASP ServerVariables Collection

    si estas ejecutando localmente y accedes desde un browser en la misma pc seguramente obtengas localhost, que seria la ip 127.0.0.1 que imagino lo representa con ese ::1

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 23 de agosto de 2018 15:59

Todas las respuestas

  • Esta bien como lo tienes, request.ServerVariables["REMOTE_ADDR"]  te da la direccion del cliente.

    "::1" es la direccion correcta del llamante. Significa que estas conectando desde localhost (el navegador esta en la misma maquina que el servidor), y que estas conectando por IPv6 en lugar de IPv4, por eso te sale "::1" que es el equivalente en IPv6 del tipico "127.0.01" que probablemente esperabas encontrarte en IPv4.

    Probablemente no tendras este problema cuando lo pongas en produccion porque seguramente solo tendras conectividad en IPv4 y no te llegara ninguna conexion en IPv6. Pero deberias tenerlo en cuenta para el futuro porque antes o despues IPv6 acabara imponiendose, asi que conviene que lo dejes previsto en tu aplicacion y aceptes las direcciones IPv6 si es que te llega alguna.

    jueves, 23 de agosto de 2018 15:48
  • hola

    Esta correcto como lo realizas

    ASP ServerVariables Collection

    si estas ejecutando localmente y accedes desde un browser en la misma pc seguramente obtengas localhost, que seria la ip 127.0.0.1 que imagino lo representa con ese ::1

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 23 de agosto de 2018 15:59