#geoip
#geoip
Вопрос:
Я ищу базу данных ГЕО IP (аналогичную стране и городу MaxMind GeoLite2), которая позволит мне идентифицировать штат США, из которого прибывает пользователь, чтобы настроить таргетинг на определенный контент для этого пользователя.
Кто-нибудь знает, как или где я мог бы найти такую базу данных / сервис или решение?
Комментарии:
1. Базы данных городов GeoIP2 и GeoLite2 MaxMind имеют подразделения / регионы, включая штаты в США. Другие поставщики предлагают аналогичные решения, хотя я не уверен, что у них покрытие лучше.
Ответ №1:
Не ожидайте высокой точности, если вас не устраивает точность страны / города. В конце концов, это данные геолокации, основанные на IP, и их точность варьируется. Он основан на интернет-провайдерах или компаниях, которые управляют базами данных (коммерческие базы данных могут иметь более высокую точность). Посмотрите на веб-инструмент с информацией об IP-местоположении (например http://geoipinfo.org / ) и вы примерно увидите, где он вас найдет, а также обеспечите точность на уровне города и страны — в процентном отношении. Он использовал базу данных ip2location для поиска и их точных данных.
Ответ №2:
Эта тема старая, но на сегодняшний день я использовал http://api.ipstack.com и это работает безукоризненно. У них есть ОЧЕНЬ обширные примеры справки на их сайте, но в основном вы совершаете звонок, анализируете данные и получаете то, что хотите.
- Во-первых, убедитесь, что у вас есть какие-либо / все включает (Namespace=System.Xml , Система.Чистая, бла-бла-бла).
- Во-вторых, убедитесь, что не проводите тестирование на IP-адресе частной сети (192.168.x.x или 10.x.x.x), потому что это всегда будет возвращать пустые / пустые поля, и вы подумаете, что что-то закодировано неправильно.
- В-третьих, вам понадобится Acess_Key из ipstack.com … вы можете настроить БЕСПЛАТНУЮ учетную запись (я думаю, 10 000 запросов в месяц) и получить свой код доступа для ввода в строку ниже для вызова API. Я заполнил форму и был готов к работе за 10 минут бесплатно.
Это помогло мне отслеживать посетителей на любой странице:
string IP = "";
string strHostName = "";
string strHostInfo = "";
string strMyAccessKeyForIPStack = "THEYGIVEYOUTHISWHENYOUSETUPFREEACCOUNT";
strHostName = System.Net.Dns.GetHostName();
IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
IP = addr[2].ToString();
XmlDocument doc = new XmlDocument();
string strMyIPToLocate = "http://api.ipstack.com/" IP "?access_key=strMyAccessKeyForIPStackamp;output=xml";
doc.Load(strMyIPToLocate);
XmlNodeList nodeLstCity = doc.GetElementsByTagName("city");
XmlNodeList nodeLstState = doc.GetElementsByTagName("region_name");
XmlNodeList nodeLstZIP = doc.GetElementsByTagName("zip");
XmlNodeList nodeLstLAT = doc.GetElementsByTagName("latitude");
XmlNodeList nodeLstLON = doc.GetElementsByTagName("longitude");
strHostInfo = "IP is from " nodeLstCity[0].InnerText ", " nodeLstState[0].InnerText " (" nodeLstZIP[0].InnerText ")";
// Then I do what you want with strHostInfo, I put it in a DB myself, but whatever.