Как получить местоположение посетителя (страна, штат и город) с помощью ASP.NET
Я хочу реализовать это в ASP.NET. К сожалению, я понятия не имею, как это сделать.
8 ответов
Вот как это делается в asp.net
Request.ServerVariables("REMOTE_ADDR")
Получить копию базы данных IP-адресов по месту нахождения здесь
Почему бы не использовать Google Analytics? Вы получите больше, чем вам нужно. В качестве альтернативы вы можете получить ip клиента и использовать сервис, такой как ip2location, чтобы получить местоположение.
Проверьте этот аналогичный вопрос. найти расположение клиентов на странице asp.net.
Есть несколько бесплатных веб-сервисов, которые предоставляют услуги IP-to-location. Например:
http://freegeoip.net/
http://www.hostip.info/
http://ipinfodb.com/ip_location_api.php
Используя
string userHost = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (String.IsNullOrEmpty(userHost) ||
String.Compare(userHost, "unknown", true) == 0)
{
userHost = Request.UserHostAddress;
}
вы получите IP-адрес пользователя. На основе этого IP-адреса вы можете узнать детали местоположения посетителя, позвонив в какой-либо веб-сервис.
IPAddressExtensions - это бесплатная библиотека классов codeplex, если все, что вам нужно, это страна, из которой находится IP.
Сначала получите IP-адрес посетителя, используя Request.ServerVariables("REMOTE_ADDR"). Имейте в виду, что посетитель может использовать прокси-сервер, и в этом случае IP-адрес может не совпадать с фактическим IP-адресом. Для случая с прокси вы можете проверить, содержит ли значение Request.ServerVariables("HTTP_X_FORWARDED_FOR"). Это будет фактический IP-адрес, если прокси-сервер не является анонимным прокси-сервером.
Затем у вас есть 2 варианта, используя веб-сервис или запрашивая данные из вашей собственной базы данных. В любом случае вам потребуются данные, которые могут сопоставить IP-адрес посетителя с его страной, штатом и городом.
Вот что я использовал:
<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>
Получите IP-адрес клиента и найдите IP-адрес, используя любой IP-сервис для определения географического местоположения.