как получить данные о местонахождении клиента / пользователя

В моем приложении я хочу отслеживать местоположение клиента / пользователя для хранения в базе данных. Я использую этот код, чтобы получить IP-адрес пользователя

 string VisitorsIPAddr = string.Empty;
        if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
        {
            VisitorsIPAddr = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
        }
        else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
        {
            VisitorsIPAddr = HttpContext.Current.Request.UserHostAddress;
        }
        ipAddress = VisitorsIPAddr;

Используя приведенный выше код, я получаю IP-адрес. теперь следующий шаг, чтобы получить часовой пояс, регион, название города, название страны, код страны, метеостанцию, интернет-провайдера и т. д.

Но я не хочу использовать какой-либо сторонний API для получения подробностей, кроме Google. Кто угодно может ответить, и моя проблема будет решена.

Возможно ли получить вышеуказанные данные в asp.net с помощью С #, или мне нужно использовать для этого любую другую службу.

Используя IP-адрес, я хочу получить точное местоположение адреса клиента.

Подробности вроде http://www.iplocationtools.com/index.html.


person Sunil Acharya    schedule 16.06.2015    source источник


Ответы (2)


Да, конечно, Google Maps JS API v3 действительно предоставляет IP для служб геокодирования местоположения. Вы можете использовать этот код для получения местоположения пользователей на основе их IP-адреса:

// If ClientLocation was filled in by the loader, use that info instead
if (google.loader.ClientLocation) {
  zoom = 13;
  latlng = new google.maps.LatLng(google.loader.ClientLocation.latitude, google.loader.ClientLocation.longitude);
  location = "Showing IP-based location: <b>" + getFormattedLocation() + "</b>";
}

Помимо Lat / Lng, google.loader.ClientLocation возвращает адрес, который включает город, страну, код страны, регион и т. Д.
Также посмотрите пример здесь.

Даже если адрес равен нулю, вы всегда можете использовать возвращенные широту / долготу с помощью службы геокодирования, чтобы получить подробный адрес.

Однако, как указано на официальном сайте:

... мы не рекомендуем использовать этот подход (использование IP-адресов для определения местоположения пользователя) для геолокации. Подход W3C является самым простым и наиболее полно поддерживаемым, поэтому ему следует отдавать предпочтение перед другими методами.

Также в системе отслеживания проблем:

... Мы прекратили документировать это несколько лет назад и рекомендовали решения на основе HTML из-за их повышенной точности, но сама функциональность не была удалена из загрузчика ...

Лучше всего это сделать с помощью подхода на основе HTML5. Однако, если вы используете IP-адрес, убедитесь, что вы понимаете, что Google может прекратить его поддержку в любой момент.

person kaho    schedule 16.06.2015
comment
На официальном сайте Google отображается результат developers.google.com/ карты / документация / javascript / примеры / - person Sunil Acharya; 17.06.2015
comment
но мне нужны данные о городе, пин-коде и т. д. в формате JSON, потому что я хочу хранить данные пользователя в своей базе данных - person Sunil Acharya; 17.06.2015
comment
Вы можете использовать службу обратного геокодирования, чтобы узнать эту информацию. демонстрация: jsfiddle.net/jbbuc1th - person kaho; 17.06.2015
comment
не достаточно ответа Я хочу подробно сохранить в строковом формате из кода С # - person Sunil Acharya; 19.06.2015
comment
не могли бы вы помочь мне получить детали в коде позади - person Sunil Acharya; 20.06.2015
comment
с #? на какой платформе вы разрабатываете? - person kaho; 21.06.2015
comment
Да, я использую C # .net. любезно помогите получить результат - person Sunil Acharya; 23.06.2015
comment
Я не очень знаком с этим ... но вы можете использовать какой-нибудь webview или iframe, чтобы сначала получить местоположение, а затем отправить его обратно в вашу программу на C #. - person kaho; 23.06.2015

Вы можете использовать веб-службы geoIP MaxMind для получения сведений о местоположении на C #. Вот следующая ссылка, которая может быть вам полезна.

http://dev.maxmind.com/geoip/geoip2/web-services/

Вот доступный репозиторий Github.

https://github.com/maxmind/GeoIP2-dotnet

person Musakkhir Sayyed    schedule 26.06.2015
comment
Думаю, вы неправильно прочитали мой вопрос. Я очистил это, я не хочу использовать какой-либо сторонний API для получения подробностей, кроме Google. - person Sunil Acharya; 26.06.2015