Ответ 1
Вот как это делается в asp.net
Request.ServerVariables("REMOTE_ADDR")
Получить копию базы данных IP-адресов по местоположению
Я хочу реализовать это в ASP.NET. Я не знаю, как это сделать, к сожалению.
Вот как это делается в 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-адресе, вы можете узнать подробности местоположения посетителя, вызвав webservice.
IPAddressExtensions является бесплатной библиотекой классов codeplex, если все, что вы просто хотите, это страна, в которой находится IP.
Сначала получите IP-адрес посетителя, используя Request.ServerVariables( "REMOTE_ADDR" ). Имейте в виду, что посетитель может использовать прокси-сервер, и в этом случае IP-адрес может не быть их фактическим IP-адресом. Для прокси-сервера вы можете проверить, содержит ли Request.ServerVariables( "HTTP_X_FORWARDED_FOR" ) значение. Это будет фактический IP-адрес, если прокси-сервер не является анонимным прокси-сервером.
Затем у вас есть 2 варианта, используя веб-службу или запрашивая данные из собственной базы данных. В любом случае вам понадобятся данные, которые могут соответствовать IP-адресу посетителя в их стране, штате и городе.
Получите IP-адрес клиента и найдите местоположение IP-адреса с помощью любого 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>