Comment obtenez-vous l'adresse ip et l'emplacement de chaque site Web vistor de votre site Web à travers Asp.Net?Obtenir ipaddress et l'emplacement de chaque utilisateur visitant votre site Web
Merci
Comment obtenez-vous l'adresse ip et l'emplacement de chaque site Web vistor de votre site Web à travers Asp.Net?Obtenir ipaddress et l'emplacement de chaque utilisateur visitant votre site Web
Merci
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
juste pour info, c'est une propriété ... pas une méthode :) –
thx enlevé parens –
Cela ne fonctionnera pas si vous êtes derrière un proxy. Vois ma réponse. – Anthony
string VisitorIPAddress = Request.UserHostAddress.ToString();
et sur la base du ipaddress vous pouvez affiner l'emplacement: find the geographical location of a host
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.
Pour IP faire:
Request.UserHostAddress
Et vous pouvez mapper IP à l'emplacement en utilisant un webservice (plus lent) ou une base de données (plus rapide) comme ceci: http://ip-to-country.webhosting.info/node/view/5
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.
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.
Qu'entendez-vous par emplacement? –