Получите информацию о местоположении пользователя с помощью EKTRON API

У меня есть приложение ektron, и я использую следующий код для получения информации о местоположении пользователя:

            try
            {
                string IP = HttpContext.Current.Request["remote_addr"];
                if (!string.IsNullOrEmpty(HttpContext.Current.Request["ip"]))
                    IP = HttpContext.Current.Request["ip"];
                else
                    IP="my system ip";


                    //var userData = Ektron.Cms.UserContext.GetLocationInfo(IP);
                    //var userData = Ektron.Cms.UserContext.GetLocationInfo("my system ip");
                    //Ektron.Cms.UserLocationData userData = Ektron.Cms.UserContext.GetCurrentUserLocationInfo();
                   //var userData = Ektron.Cms.UserContext.GetLocationInfo(IP);


                  visitorCountry = userData.CountryCode;
            }

В приведенном выше коде я попробовал 4 разных метода (они прокомментированы //) для получения пользовательских данных. Но я получаю нулевое значение во всех этих 4 попытках, поэтому я получаю исключение в userData.CountryCode;

Как я могу решить эту проблему?

В IP я получаю значение, поскольку ::1 и Ektron.Cms.UserContext.IP также дают значение ::1

Я использую ektron 8.7


person Sudha    schedule 06.06.2013    source источник


Ответы (1)


У меня сейчас не работает версия 8.7, но у меня есть версия 9, и вот что я нашел:

Я запустил следующий код:

var location = Ektron.Cms.UserContext.GetLocationInfo("74.125.225.113");

Response.Write("<pre>" + Ektron.Cms.UserContext.IP + "</pre>");
Response.Write("<pre>" + string.Format("{0}, {1} ({2} / {3})", location.City, location.Region, location.Longitude, location.Latitude) + "</pre>");

Вот что отображалось на экране:

::1
Mountain View, CA (-122.057403564453 / 37.4192047119141)

Я запускаю сайт локально на своей машине разработки, поэтому я просматриваю http://localhost/test.aspx - неудивительно, что Ektron.Cms.UserContext.IP возвращает для меня "::1". У меня не было доступа к серверу, поэтому я пропинговал www.google.com и получил IP-адрес 74.125.225.113. Используя этот IP-адрес, Ektron дал мне ненулевой ответ.

Я думал, что у меня также установлена ​​версия 8.61, но когда я запустил тот же код в этой среде, я получил следующую ошибку: System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.

Я попытаюсь очистить свою установку v8.6 и посмотреть, работает ли там код, но тем временем я попробую использовать некоторые известные IP-адреса и посмотрю, получите ли вы лучшие результаты.

person Brian Oliver    schedule 09.07.2013