Как определить страну посетителя

Чтобы определить страну посетителя, я вижу этот код, предложенный на многих форумах, но я не могу заставить его работать.

modGlobal.ResolveCountry.ThreeLetterISORegionName

На моей локальной машине он корректно возвращает регион настроек моего компьютера, тогда как на производственном сервере всегда возвращает США.

Я полагаю, это связано с тем, что функция возвращает региональные настройки среды (т. Е. Региональные настройки серверов), кто-нибудь может это подтвердить? И если это правда, что является лучшей практикой для выявления посетителей страны в asp.net?

2 ответа

Попробуй это

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 см.

Попробуйте получить IP-адрес от посетителя и посмотреть на него данные трассировки.

Может быть, посмотрите на это: Как получить местоположение посетителя (страна, штат и город) с помощью ASP.NET

Другие вопросы по тегам