Как получить местоположение посетителя (страна, штат и город) с помощью ASP.NET

Я хочу реализовать это в ASP.NET. К сожалению, я понятия не имею, как это сделать.

8 ответов

Вот как это делается в asp.net

Request.ServerVariables("REMOTE_ADDR")

Получить копию базы данных IP-адресов по месту нахождения здесь

http://www.maxmind.com/

Почему бы не использовать 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-сервис для определения географического местоположения.

Другие вопросы по тегам