如何检测访客国家

时间:2013-07-11 08:10:10

标签: asp.net browser localization regional-settings

要检测访问者所在的国家/地区,我会在许多论坛中看到以下代码,但我无法使其正常运行。

  

modGlobal.ResolveCountry.ThreeLetterISORegionName

在我的本地计算机上,它正确返回我的计算机设备区域,而它在生产服务器上始终返回USA。

我想这是因为函数返回envoirement区域设置(即服务器区域设置),有人可以确认吗?如果是的话,在asp.net中检测访客国家的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

试试这个

Dictionary<string,string> objDic = new Dictionary<string,string>();

foreach (CultureInfo ObjCultureInfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
RegionInfo objRegionInfo = new RegionInfo(ObjCultureInfo.Name);
if (!objDic.ContainsKey(objRegionInfo.EnglishName))
  {
      objDic.Add(objRegionInfo.EnglishName, objRegionInfo.TwoLetterISORegionName.ToLower());
  }
}

var obj = objDic.OrderBy(p => p.Key );
foreach (KeyValuePair<string,string> val in obj)
{
  ddlCountries.Items.Add(new ListItem(val.Key, val.Value));
}

EnglishName将返回国家/地区名称

来自IP see

答案 1 :(得分:0)

尝试从访问者获取ip并从中查找跟踪数据

也许看看这个:How to get visitor location ( country, state and city ) using ASP.NET