gpt4 book ai didi

c# - 使用 C# 获取当前国家和位置详细信息

转载 作者:行者123 更新时间:2023-12-02 20:51:46 27 4
gpt4 key购买 nike

我想知道我的应用程序在哪里使用。

这是获取国家名称和时区的代码:

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

但我的问题是,任何人都可以更改时区。根据时区,我可能会得到错误的名字。并且区域设置使用的是美国,无法更改。因为所有用户都具有相同的设置,而且我的应用程序有数十万用户。

有什么方法可以读取任何操作系统设置/系统设置并获取当前使用我的应用程序的国家/地区?

最佳答案

您可以使用 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; }
}
}

注意需要 net framework 4.5 或更高版本才能在没有第 3 方库的情况下将 json 转换为对象。

如果你的目标是较低的框架,你可以自己解析信息字符串。

关于c# - 使用 C# 获取当前国家和位置详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41996028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com