【发布时间】:2015-09-10 12:46:31
【问题描述】:
我有一个使用 Sitecore 7.5 构建的 Sitecore 解决方案。我们还从 Sitecore 应用中心购买了 Sitecore IP 地理定位服务。现在,一旦我运行了所有这些,我如何才能在代码中访问当前用户的国家?我似乎找不到任何说明如何获取任何地理位置信息的文档。
谢谢, 科里
【问题讨论】:
标签: sitecore sitecore7 ip-geolocation
我有一个使用 Sitecore 7.5 构建的 Sitecore 解决方案。我们还从 Sitecore 应用中心购买了 Sitecore IP 地理定位服务。现在,一旦我运行了所有这些,我如何才能在代码中访问当前用户的国家?我似乎找不到任何说明如何获取任何地理位置信息的文档。
谢谢, 科里
【问题讨论】:
标签: sitecore sitecore7 ip-geolocation
我假设您已启用分析。试试这个:
Sitecore.Analytics.Tracker.Current.Interaction.GeoData.Country
【讨论】:
现在看来这是正确的做法:
Sitecore.Analytics.Lookups.LookupManager.GetInformationByIp(string ip);
【讨论】:
简单形式:
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;
}
}
【讨论】:
【讨论】: