2017-02-02 10 views
0

Я хочу знать, где мое приложение используется.Получить текущую информацию о стране и местоположении, используя C#

Вот код для получения названия страны и зон времени:

TimeZone localZone = TimeZone.CurrentTimeZone; 
var result = localZone.StandardName; 
var s = result.Split(' '); 
Console.WriteLine(s[0]); 
Console.WriteLine(RegionInfo.CurrentRegion.DisplayName); 

Но мой вопрос, любой может изменить часовой пояс. На основе часового пояса я могу получить неправильное имя. И настройки региона используются как единые государства, которые нельзя изменить. Потому что все пользователи имеют одинаковые настройки, и к моему приложению сотни тысяч пользователей.

Есть ли способ прочитать настройки ОС/Системные настройки и получить текущую страну, в которой используется мое приложение?

+0

Как насчет использования IP-адреса для определения местоположения, если это веб-приложение? – A3006

+0

Это приложение для Windows. Я даже пытался с IP, что дает мне Соединенные Штаты как название страны, несмотря на то, что я сижу в Индии. – user703526

ответ

1

Вы можете использовать IP-адрес, чтобы получить расположение, есть много вариантов, чтобы сделать это, и один из них ipinfodb, вы можете получить пример здесь - Class CountryIP VB/C#

1

Вы можете использовать IpInfo, чтобы получить пользователь страны по их интернет-адресу. , если они не находятся под VPN или прокси, это ваш лучший выбор.

class Program 
{ 
    static void Main(string[] args) 
    { 
     GetCountryByIP(); 
    } 

    public static void GetCountryByIP() 
    { 
     IpInfo ipInfo = new IpInfo(); 

     string info = new WebClient().DownloadString("http://ipinfo.io"); 

     JavaScriptSerializer jsonObject = new JavaScriptSerializer(); 
     ipInfo = jsonObject.Deserialize<IpInfo>(info); 

     RegionInfo region = new RegionInfo(ipInfo.Country); 

     Console.WriteLine(region.EnglishName); 
     Console.ReadLine(); 

    } 

    public class IpInfo 
    { 
     //country 
     public string Country { get; set; } 
    } 
} 

Для того, чтобы преобразовать json в объект без сторонних библиотек, требуется ссылка net framework 4.5 или выше.

Если вы нацеливаетесь на нижние рамки, вы можете самостоятельно проанализировать информационную строку.

Смежные вопросы