Как определить страну посетителя
Чтобы определить страну посетителя, я вижу этот код, предложенный на многих форумах, но я не могу заставить его работать.
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