0

为了检测访问者国家/地区,我在许多论坛中看到了以下代码,但我无法让它工作。

modGlobal.ResolveCountry.ThreeLetterISORegionName

在我的本地机器上,它正确地返回我的计算机区域设置区域,而在生产服务器上它总是返回美国。

我猜这是因为函数返回环境区域设置(即服务器区域设置),有人可以确认吗?如果属实,在 asp.net 中检测访问者国家/地区的最佳做法是什么?

4

2 回答 2

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

于 2013-07-11T08:16:59.140 回答
0

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

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

于 2013-07-11T08:16:22.160 回答