2009-04-28 11 views

Respuesta

4

Para sacar el IP del usuario:

Request.UserHostAddress 

Puede utilizar este servicio web para obtener su ubicación geográfica http://iplocationtools.com/ip_location_api.php

+0

solo FYI, es una propiedad ... no es un método :) –

+0

thx eliminado parens –

+0

Esto no funcionará si está detrás de un proxy. Ver mi respuesta – Anthony

0

Bueno, la siguiente propiedad le dará la dirección IP del teh cliente (o el servidor proxy clientes)

Request.UserHostAddress 

cuanto a la ubicación, que había necesidad de utilizar algún plugin de GeoIP/de GeoLocation como MaxMind para resolver eso.

http://www.maxmind.com/

0

Es independiente de la tecnología del servidor, pero recomendaría utilizar el cargador AJAX de Google: http://code.google.com/apis/ajax/documentation/#ClientLocation

Está en Javascript e incluso le dará la ciudad/estado/país de la persona (bueno, se necesita una estimación basada en la dirección IP). Envíelo de nuevo al servidor y está disponible para usted en ASP.NET o lo que sea.

1

Request.UserHostAddress no funcionará si está detrás de un proxy. Utilizar este código:

public static String GetIPAddress() 
{ 
    String ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; 
    if (string.IsNullOrEmpty(ip)) 
     ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 
    else 
     ip = ip.Split(',')[0]; 

    return ip; 
} 

Tenga en cuenta que HTTP_X_FORWARDED_FOR debe ser utilizado, pero ya que puede devolver varias direcciones IP separadas por una coma es necesario utilizar la función Split. Ver this page para más información.

Cuestiones relacionadas