Получение названия страны от посетителей на веб-сайте

Я хотел бы знать, как я могу получить название страны всех посетителей, которые посещают веб-сайт (мой веб-сайт). Я видел maxmind.com, и его так сложно настроить, так как я новичок. Надеюсь получить хорошие ответы. Я уже пробовал много вещей на этом сайте и не мог придумать решение.

GeoServiceReference.GeocodeServiceClient client = new GeoServiceReference.GeocodeServiceClient();

var countries = new List<string>();

for (double lat = 0; lat < 360; lat+=0.1)
    for(double lon = 0; lon < 360; lon+=0.1)
    {
        var result = client.ReverseGeocode(new GeoServiceReference.ReverseGeocodeRequest
        {
            Location = new GeoServiceReference.Location
            {
                Latitude = lat,
                Longitude = lon
            }
        });

        if (!countries.Contains(result.Results.First().Address.CountryRegion))
        {
            Console.WriteLine(result.Results.First().Address.CountryRegion);
            countries.Add(result.Results.First().Address.CountryRegion);
        }
    }

person user3784912    schedule 13.08.2014    source источник


Ответы (2)


В качестве альтернативы Maxmind freegeoip.net предлагает бесплатную службу REST, основанную на устаревших базах данных Maxmind. Он очень прост в использовании — вам просто нужно отправить HTTP-запрос GET на URL-адрес в следующем формате:

http://freegeoip.net/json/{ip_or_hostname}

Вы можете использовать такую ​​библиотеку, как RestSharp — опять же, очень простую в использовании — для выполнения этого запроса и анализа результата.

Вот простой пример, который должен указать вам правильное направление:

public Geolocation GetGeolocationData(string ipAddress)
{
    var client = new RestClient("http://freegeoip.net/");

    var request = new RestRequest("json/{ip}");
    request.AddUrlSegment("ip", ipAddress);

    var response = client.Execute<Geolocation>(request);
    return response.Data;
}

Здесь я предполагаю, что Geolocation — это класс с некоторыми свойствами, которые совпадают с именами в результате JSON, возвращаемом службой REST, например:

public class Geolocation
{
    public string CountryName { get; set; }
    ...
}
person Ant P    schedule 13.08.2014

Наиболее удобным инструментом является API, или если вы хотите разместить данные и выполнять поиск на своем сервере, вы можете рассмотреть возможность получения копии базы данных. http://www.ipinfodb.com

person HexaHow    schedule 11.09.2014