2013-07-11 47 views
0

要检测访客国家我看到下面的代码在许多论坛建议,但我无法得到它的工作。如何检测访客国家

modGlobal.ResolveCountry.ThreeLetterISORegionName

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

我想这是因为该函数返回区域设置(即服务器区域设置),任何人都可以证实这一点?如果属实,在asp.net中检测访问者国家的最佳做法是什么?

回答

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