База данных GeoIP, которая будет ориентирована на Geo по штатам США

Я ищу базу данных IP-адресов GEO (аналогично MaxMind GeoLite2 Country и City), которая позволит мне определить штат США, из которого прибывает пользователь, чтобы нацелить определенный контент на этого пользователя.

Кто-нибудь знает, как и где я могу найти такую ​​базу данных/сервис или решение?


person user3755987    schedule 19.06.2014    source источник
comment
Базы данных MaxMind GeoIP2 и GeoLite2 City имеют подразделения/регионы, включая штаты в США. Другие поставщики предлагают аналогичные решения, хотя я не уверен, что покрытие у них лучше.   -  person Greg Oschwald    schedule 19.06.2014


Ответы (2)


Не ожидайте высокой точности, если вас не устраивает точность страны/города. В конце концов, это данные геолокации на основе IP, и точность варьируется. Он основан на поставщиках интернет-услуг или компаниях, которые управляют базами данных (коммерческие базы данных могут иметь более высокую точность). Посмотрите веб-инструмент с информацией о местоположении IP (например, http://geoipinfo.org/), и вы увидите, где примерно он находит вас, а также обеспечивает точность на уровне города и страны в процентах. Он использовал базу данных ip2location для поиска и данных их точности.

person Laur    schedule 04.10.2014

Этот поток устарел, но на сегодняшний день я использовал http://api.ipstack.com, и он работает отлично. У них есть ОЧЕНЬ обширные примеры справки на их сайте, но в основном вы звоните, анализируете данные и получаете то, что хотите.

  1. Во-первых, убедитесь, что у вас есть какие-либо/все включения (Namespace=System.Xml, System.Net, бла-бла).
  2. Во-вторых, убедитесь, что не проводите тестирование на IP-адресе частной сети (192.168.x.x или 10.x.x.x), потому что это всегда будет возвращать пустые/пустые поля, и вы подумаете, что что-то закодировано неправильно.
  3. В-третьих, вам понадобится 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=strMyAccessKeyForIPStack&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.
person Mike Hawk    schedule 18.01.2019