如何从 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:以编程方式检索用户详细信息

Sitecore 获取存档项目

Sitecore

Sitecore 登录所需的最低角色和访问权限

如何从 sitecore Webservice 修改新创建的 Item/Page 的字段值

无法从 sitecore 删除外联网用户