2009-09-11 25 views

Respuesta

0

Obtenga la dirección IP del cliente y encuentre la ubicación de la IP con cualquier dirección IP al servicio de asignación de ubicación geográfica.

11

aquí cómo se hace en asp.net

Request.ServerVariables("REMOTE_ADDR") 

obtener una copia de la base de datos de direcciones IP por ubicación aquí

http://www.maxmind.com/

+0

+1 para Maxmind. Lo usé con gran éxito. –

+4

Debe ser Request.ServerVariables ["REMOTE_ADDR"] en C# – Dean

4

utilizando

string userHost = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 
if (String.IsNullOrEmpty(userHost) || 
    String.Compare(userHost, "unknown", true) == 0) 
{ 
    userHost = Request.UserHostAddress; 
} 

se obtendrá la dirección IP de los usuarios. En función de esta dirección IP, puede encontrar los detalles de la ubicación del visitante llamando al webservice.

+0

Esa variable de servidor solo está disponible si su servidor web está detrás de un proxy o algún tipo de dispositivo de red. – David

+1

Creo que ese era el objetivo de su lógica, verificar eso y luego recurrir a la dirección del host del usuario si no existe. – Justin

2

IPAddressExtensions es una biblioteca de clases codeplex gratuita si todo lo que desea es el país desde el que se encuentra el IP.

2

Primero, obtenga la dirección IP del visitante utilizando Request.ServerVariables ("REMOTE_ADDR"). Tenga en cuenta que el visitante podría estar usando un servidor proxy en cuyo caso la dirección IP puede no ser su dirección IP real. Para el caso de proxy, puede verificar si Request.ServerVariables ("HTTP_X_FORWARDED_FOR") contiene un valor. Esta será la dirección IP real si el servidor proxy no es un servidor proxy anónimo.

Luego tiene 2 opciones, utilizando un servicio web o consultando datos desde su propia base de datos. De cualquier manera, necesitará datos que puedan coincidir con una dirección IP del visitante a su país, estado y ciudad.

0

Esto es lo que he usado:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      'url': 'http://www.freegeoip.net/json/@(HttpContext.Current.Request.UserHostAddress)', 
      'type': 'GET', 
      'success': function(data) { 
       // for example 
       if (data.country_code === "GB") { 
        ... further logic here 
       } 
      } 
     }); 
    }); 
</script> 
Cuestiones relacionadas