2009-04-28 6 views

Répondre

4

Pour l'utilisation IP de l'utilisateur:

Request.UserHostAddress 

Vous pouvez utiliser ce Webservice pour obtenir leur emplacement géographique. http://iplocationtools.com/ip_location_api.php

+0

juste pour info, c'est une propriété ... pas une méthode :) –

+0

thx enlevé parens –

+0

Cela ne fonctionnera pas si vous êtes derrière un proxy. Vois ma réponse. – Anthony

0

Eh bien la propriété suivante devrait vous donner l'adresse IP du Teh client (ou le client serveur proxy)

Request.UserHostAddress 

En ce qui concerne l'emplacement, vous aurez besoin d'utiliser un plug-in GeoIP/Geolocation comme MaxMind pour comprendre cela.

http://www.maxmind.com/

0

Il est indépendant de la technologie serveur, mais je recommanderais d'utiliser le chargeur AJAX de Google: http://code.google.com/apis/ajax/documentation/#ClientLocation

Il est en Javascript et vous donnera même la ville/état/pays de la personne (bien, il prend une estimation en fonction de l'adresse IP). Reportez-le au serveur et il est disponible pour vous dans ASP.NET ou autre.

1

Request.UserHostAddress ne fonctionnera pas si vous êtes derrière un proxy. Utilisez ce code:

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; 
} 

Notez que HTTP_X_FORWARDED_FOR doit être utilisé, mais comme il peut retourner plusieurs adresses IP séparées par une virgule, vous devez utiliser la fonction Split. Voir this page pour plus d'informations.

Questions connexes