0

訪問者の国を検出するために、多くのフォーラムで以下のコードが提案されていますが、うまくいきません。

modGlobal.ResolveCountry.ThreeLetterISORegionName

ローカル マシンでは、コンピュータのレショナル設定の地域を正しく返しますが、運用サーバーでは常に USA を返します。

これは、関数が環境の地域設定 (つまり、サーバーの地域設定) を返すためだと思いますが、誰でもこれを確認できますか? もしそうなら、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 を取得して、そこからトレース データを検索してみてください

多分これを見てください:ASP.NETを使用して訪問者の場所(国、州、都市)を取得する方法

于 2013-07-11T08:16:22.160 に答える