0

我需要帮助才能使用 Maxmin 服务在 SiteCore 中获取当前用户的纬度/语言。我正在尝试使用默认配置并提供免费查找。我正在使用下面的 API 来获得结果。 Tracker.CurrentVisit.Latitude Tracker.CurrentVisit.Longitude

但它给了我零价值。

实际上,当我尝试使用 Tracker.CurrentVisit.Ip获取 IP 时 ,我得到的是私有 IP,而不是公共 IP。我在测试服务器中部署了我的解决方案并在本地机器上访问。我现在没有任何许可证,但据我所知,最初有一些免费查找可供少数访问。此外,当我尝试使用 Tracker.CurrentVisit.GeoIp.Ip 时,它失败了,因为 GeoIp 为空。

Tracker.CurrentVisit.GeoIp.IpTracker.CurrentVisit.Ip有什么区别 如果有人有任何意见,请告诉我

-谢谢,沙拉特

4

4 回答 4

0

您可以使用 Sitecore.analytics.dll 获取当前访问的 lat long,请参见下面的代码。

我正在使用它,它会给你正确的结果。

var currentLat=Sitecore.Analytics.Tracker.CurrentVisit.Latitude;
var currentLong=Sitecore.Analytics.Tracker.CurrentVisit.Longitude;

如果您的网站托管在您的本地系统上,那么它将给您零结果。请在服务器上托管站点然后尝试,它会给你正确的结果。

于 2014-06-11T11:46:23.973 回答
0

已经有一段时间了,但我相信网络服务不是免费的。免费版是您在本地使用的数据库(csv 文件)。您可以在此处找到更多信息:http: //dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs

于 2014-04-29T12:10:53.757 回答
0

Maxmind 一般在 Sitecore.Analytics.config 中配置,您可以测试一下您的 maxmind 许可证是否返回有效值:

<setting name="MaxMind.Url" value="http://sitecore1.maxmind.com/app/sc?i={0}&amp;l={1}" />

在浏览器中,从设置中获取 url 并输入有效的 ip 并添加许可证密钥(您可以在登录页面上获取密钥。然后附加 MaxMind.SecurityToken 中的值)。寻找返回值。有一定数量的免费请求,但之后您需要付费。

另一个要查看的项目是 IP 地址在标头中的传递位置(实际 IP 或 X 转发,具体取决于您的网络)。检查这个值

 <setting name="Analytics.ForwardedRequestHttpHeader" value="X-Forwarded-For" />
于 2014-04-30T16:01:36.720 回答
0

通过 ILSpy 查看 Sitecore.Analytics.dll 的代码,Tracker.CurrentVisit.Ip 返回当前会话的分析数据行的 IP 属性。这是一个字节数组,取自我怀疑的 HTTP 请求数据。Tracker.CurrentVisit.GeoIp 返回当前会话的 GeoIP 查找的分析数据库行。它是一个 VisitorDataSet.GeoIpsRow 类型的对象。

由于 GeoIP 服务的配置或许可问题,您可能会看到空数据 - 但您的问题中没有足够的信息让我对此多说。但是,如果正确配置了该服务,我之前可能遇到过类似的问题 - 所以这可能会有所帮助:

您没有指定正在使用的 Sitecore / DMS 版本。但是在使用 DMS for v6.5/6.6 时,我遇到了 GeoIP 查找的一些问题,因为它们是异步执行的。

当 DMS 为访问创建新记录时,它将在后台触发 GeoIP 查找 - 与提供用户请求的页面并行。您不知道它何时会成功并返回数据,并且 Tracker 对象中的 GeoIP 属性在这发生之前不会被正确填写。因此,如果您尝试编写在用户最初几个页面请求期间做出地理决策的代码,它们可能无法正常工作。

我认为(尽管我没有对此进行测试)您可以使用 Tracker.CurrentVisit.HasGeoIpData 属性来测试异步查找是否已完成。

如果您有需要在用户第一次请求期间了解 GeoIP 数据的情况,那么我认为标准查找服务对您没有用处。您可以使用另一种内存工具。我认为上次我的公司需要做这样的事情时,我们根据这篇博客文章使用了一些自定义代码:http: //sitecoresnippets.blogspot.co.uk/2011/12/sitecore-geoip-country-resolving-跳转.html

但是,您可以通过使用这种方法来权衡准确性以换取速度。但另一方面,您无需为每次查找付费...

于 2014-04-29T12:35:43.490 回答