如何从 Sitecore 地理位置信息中获取用户所在的国家/地区?
Posted
技术标签:
【中文标题】如何从 Sitecore 地理位置信息中获取用户所在的国家/地区?【英文标题】:How can I get the user's country from Sitecore Geolocation information? 【发布时间】:2015-09-10 12:46:31 【问题描述】:我有一个使用 Sitecore 7.5 构建的 Sitecore 解决方案。我们还从 Sitecore 应用中心购买了 Sitecore IP 地理定位服务。现在,一旦我运行了所有这些,我如何才能在代码中访问当前用户的国家?我似乎找不到任何说明如何获取任何地理位置信息的文档。
谢谢, 科里
【问题讨论】:
【参考方案1】:我假设您已启用分析。试试这个:
Sitecore.Analytics.Tracker.Current.Interaction.GeoData.Country
【讨论】:
这非常有效。你在哪里找到它?是否有更多可用的文档? @Dmytro 这会在会话加载之前启动吗? Tracker.Current.Session.Interaction.GeoData【参考方案2】:现在看来这是正确的做法:
Sitecore.Analytics.Lookups.LookupManager.GetInformationByIp(string ip);
【讨论】:
【参考方案3】:简单形式:
Sitecore.Analytics.Lookups.MaxMindProvider maxMindProvider = new Sitecore.Analytics.Lookups.MaxMindProvider();
Sitecore.Analytics.Lookups.WhoIsInformation geoIpInformation = maxMindProvider.GetInformationByIp(Request.ServerVariables["REMOTE_ADDR"]);
string country = geoIpInformation.Country;
使用缓存:
System.Net.IPAddress ipAddress = null;
if (System.Net.IPAddress.TryParse(Request.ServerVariables["REMOTE_ADDR"], out ipAddress))
Sitecore.Analytics.Lookups.GeoIpOptions geoIpOptions = new Sitecore.Analytics.Lookups.GeoIpOptions();
geoIpOptions.Ip = ipAddress;
geoIpOptions.MillisecondsTimeout = 1000;
Sitecore.Analytics.Lookups.GeoIpResult geoIpResult = Sitecore.Analytics.Lookups.GeoIpManager.GetGeoIpData(geoIpOptions);
if (geoIpResult != null)
string country = geoIpResult.GeoIpData.Country;
来源:http://wiki.evident.nl/Sitecore%20MaxMind%20GeoIP%20api%20and%20cachinig.ashx?AspxAutoDetectCookieSupport=1
【讨论】:
这是旧的(基于 MaxMind 的)地理 IP 的东西。新的就不一样了。【参考方案4】:https://doc.sitecore.net/sitecore_experience_platform/80/ip_geolocation/setting_up_sitecore_ip_geolocation你也可以在sitecore 8网站上试试
【讨论】:
这里只包含安装说明,不包含安装后的使用方法。以上是关于如何从 Sitecore 地理位置信息中获取用户所在的国家/地区?的主要内容,如果未能解决你的问题,请参考以下文章
Sitecore SocialConnect 1.3:以编程方式检索用户详细信息