Какой лучший API для геолокации IP-адреса?
от Ахмад Авайс
Этот пост был впервые опубликован по адресу ↓
Какой API для геолокации IP-адреса лучше всего?
Какой лучший API для геолокации IP-адреса?
Работая над недавним проектом для клиента, я обнаружил, что мне нужен хороший и достаточно надежный API геолокации, чтобы узнать больше о пользователе, который посещает ваш сайт.
Итак, я провел небольшое исследование доступных в настоящее время API и составил несколько исчерпывающий список. Это то, чем я планирую поделиться сегодня.
Я бы использовал веб-сервис, который может возвращать данные JSON. Ниже перечислены все бесплатные * активные * службы поиска IP-адресов, которые я смог найти, и информацию, которую они возвращают. Если вы знаете что-то еще, оставьте комментарий ниже. Если у вас есть такой, свяжитесь со мной через контактную форму, я бы хотел поговорить.
ТОЛЬКО ПРИМЕЧАНИЕ!
👨💻 Я учу тысячи разработчиков, как стать опытными пользователями VSCode →
🌟 IPStack → (рекомендуется)
Помните FreeGEOIP.net? Ну, теперь он называется IPStack. У него гораздо лучшие предложения, достаточно хороший бесплатный пакет и доступные премиальные пакеты.
IPStack предлагает гораздо больше внутри ответа API, что побудило меня не только использовать IPStack для личного использования, но я также рекомендую вам взглянуть:
- ✅ Стандартный / массовый поиск / поиск инициатора запроса
- 💵 Валютные данные (название, символ)
- 🌐 Данные, связанные с подключением (интернет-провайдер)
- 🕖 Данные о часовом поясе (переход на летнее время, смещение по Гринвичу)
- 📍 Исчерпывающие данные о местоположении (языки, телефонный код)
- ⚙ Укажите поля, чтобы получить только те данные, которые вам нужны, и сэкономить трафик
- 💂♂️ Данные, связанные с безопасностью (информация о прокси, сканере, tor, уровне / типе угрозы)

Просто используйте эту ссылку https://api.ipstack.com/check?access_key=YOUR_ACCESS_KEY на выбранном вами языке, чтобы получить все подробности, подробности читайте в документации →
Возврат:
Плюсы:
- 10 000 запросов API в месяц бесплатно.
- 100% время безотказной работы, как сообщает UpTimeRobot, что является еще одним признаком хорошего IP-адреса для службы GEO API. Скорость API практически не имеет себе равных.
- Дополнительные данные: Местоположение (языки, SVG / эмодзи флаг страны, телефонный код, также помогает в GDPR, сообщая
is_euкак истину / ложь) , часовой пояс (летнее время, смещение по Гринвичу), валюта (название, символ), соединение (интернет-провайдер) и многое другое. - Модуль безопасности: который может использоваться для оценки рисков и угроз, исходящих с определенных IP-адресов, прежде чем какой-либо ущерб может быть нанесен веб-сайту или веб-приложению. Информация о прокси, краулере, tor, уровне / типе угрозы - делает этот сервис отличным на многих уровнях.
- SMB + Enterprise: IPStack поддерживается компанией под названием apilayer. Я уже пользуюсь их выставлением счетов SaaS и парой других служб API. Ему также доверяют такие корпоративные компании, как Microsoft, Airbnb, Samsung и другие. Они могут поддерживать миллионы запросов в день.
Ограничения:
- Требуется адрес электронной почты для получения ключа API
Db-ip.com
//api.db-ip.com/addrinfo?api_key=<*your api key*>&addr=<*ip address*>
Возврат:
{
"address": "119.152.180.314",
"country": "PK",
"stateprov": "Central Pakistan",
"city": "Pakistan"
}
Ограничения:
- 2500 запросов в час
- Не поддерживает обратные вызовы JSONP
- Требуется параметр IP-адреса
- Требуется адрес электронной почты для получения ключа API
🌟 IPInfo → (рекомендуется)
IPInfo - еще один крупный игрок в нише информации об IP. С 2013 года они создали клиентскую базу из более чем 100 000, включая npm, CBS, Dell, Vodafone, и обслуживают 12 миллиардов запросов IP API в месяц. Компанию основал бывший инженер Facebook Бен Доулинг. IPInfo может похвастаться невероятным количеством наборов данных и функций, перечисленных ниже:
- Стандартные / массовые запросы / поисковые запросы
- Связь, данные, связанные с оператором связи
- 🏛️ Собственные данные оператора IP ASN
- Исчерпывающие данные GeoIP образуют самостоятельное решение IPInfo
- Укажите поля, чтобы получить только те данные, которые вам нужны, и сэкономить трафик
- 🤯 Глобальные данные ASN, Хостинговые домены и Диапазон IP-адресов - единственные в своем роде

$.get("https://ipinfo.io", function(response) {
console.log(response.ip, response.country);
}, "jsonp")
Возврат:
Плюсы:
- 30 000 запросов API в месяц бесплатно.
- 100% время безотказной работы, так как оно основано на лучших веб-сервисах Amazon. Развертывания выполняются ежедневно с помощью Elastic Beanstalk. Скорость API практически не имеет себе равных.
- Данные. Огромные наборы данных для ASN, Carrier и т. д. могут быть очень полезны при настройке контента. Представьте себе, что ваша следующая рекламная кампания будет по-разному ориентироваться на пользователей AT&T и T-Mobile.
- Проверено на предприятии: данные IPInfo были запрошены несколькими корпоративными компаниями, например Tesla, Dell, TripAdvisor и Xerox - свидетельство того, как далеко они продвинулись. Многие компании от малого и среднего бизнеса до крупных предприятий указаны на странице о компании.
Ограничения:
- 1000 запросов в день на бесплатном плане.
Geobytes.com
$.getJSON( '//gd.geobytes.com/GetCityDetails?callback=?', function( data ) {
console.log( JSON.stringify( data, null, 2 ) );
});
Возврат:
{
"geobytesforwarderfor": "",
"geobytesremoteip": "119.152.180.314",
"geobytesipaddress": "119.152.180.314",
"geobytescertainty": "99",
"geobytesinternet": "SA",
"geobytescountry": "Saudi Arabia",
"geobytesregionlocationcode": "SASH",
"geobytesregion": "Ash Sharqiyah",
"geobytescode": "SH",
"geobyteslocationcode": "SASHJUBA",
"geobytescity": "Jubail",
"geobytescityid": "13793",
"geobytesfqcn": "Jubail, SH, Saudi Arabia",
"geobyteslatitude": "27.004999",
"geobyteslongitude": "49.660999",
"geobytescapital": "Riyadh ",
"geobytestimezone": "+03:00",
"geobytesnationalitysingular": "Saudi Arabian ",
"geobytespopulation": "22757092",
"geobytesnationalityplural": "Saudis",
"geobytesmapreference": "Middle East ",
"geobytescurrency": "Saudi Riyal",
"geobytescurrencycode": "SAR",
"geobytestitle": "Saudi Arabia"
}
Ограничения:
- 16 384 запроса в час
- Может возвращать неверное местоположение (я не в Саудовской Аравии)
Geoip.nekudo.com
$.getJSON( '//geoip.nekudo.com/api/', function( data ) {
console.log( JSON.stringify( data, null, 2 ) );
});
Возврат:
{
"city": "Pakistan",
"country": {
"name": "Pakistan",
"code": "PK"
},
"location": {
"accuracy_radius": 50,
"latitude": 1.2855,
"longitude": 103.8565,
"time_zone": "Asia/Karachi"
},
"ip": "119.152.180.314"
}
Ограничения:
- Требуется параметр IP-адреса
Geoplugin.com
$.getJSON( '//www.geoplugin.net/json.gp?jsoncallback=?', function( data ) {
console.log( JSON.stringify( data, null, 2 ) );
});
Возврат:
{
"geoplugin_request": "119.152.180.314",
"geoplugin_status": 200,
"geoplugin_credit": "Some of the returned data includes GeoLite data created by MaxMind, available from http://www.maxmind.com.",
"geoplugin_city": "Pakistan",
"geoplugin_region": "Pakistan ( general )",
"geoplugin_areaCode": "0",
"geoplugin_dmaCode": "0",
"geoplugin_countryCode": "PK",
"geoplugin_countryName": "Pakistan",
"geoplugin_continentCode": "AS",
"geoplugin_latitude": "31.5497",
"geoplugin_longitude": "103.855797",
"geoplugin_regionCode": "00",
"geoplugin_regionName": "Pakistan ( general )",
"geoplugin_currencyCode": "PKD",
"geoplugin_currencySymbol": "Rs.",
"geoplugin_currencySymbol_UTF8": "Rs.",
"geoplugin_currencyConverter": 1.4239
}
Ограничения:
- 120 запросов в минуту
Ip-api.com
$.getJSON( '//ip-api.com/json?callback=?', function( data ) {
console.log( JSON.stringify( data, null, 2 ) );
});
Возврат:
{
"as": "PTCL",
"city": "Pakistan",
"country": "Pakistan",
"countryCode": "PK",
"isp": "PTCL Pte Ltd",
"lat": 31.5497,
"lon": 74.3436,
"org": "Pakistan Telecommunications",
"query": "119.152.180.314",
"region": "01",
"regionName": "Central Pakistan Community Development Council",
"status": "success",
"timezone": "Asia/Karachi",
"zip": ""
}
Ограничения:
- 150 запросов в минуту
Ipify.org
$.getJSON( '//api.ipify.org?format=jsonp&callback=?', function( data ) {
console.log( JSON.stringify( data, null, 2 ) );
});
Возврат:
{
"ip": "119.152.180.314"
}
Ограничения:
- Нет (неограниченная пропускная способность)
Ipinfodb.com
$.getJSON( '//api.ipinfodb.com/v3/ip-city/?key=&format=json&callback=?', function( data ) {
console.log( JSON.stringify( data, null, 2 ) );
});
Возврат:
{
"statusCode": "OK",
"statusMessage": "",
"ipAddress": "119.152.180.314",
"countryCode": "PK",
"countryName": "Pakistan",
"regionName": "Pakistan",
"cityName": "Pakistan",
"zipCode": "54000",
"latitude": "1.28967",
"longitude": "103.85",
"timeZone": "+08:00"
}
Ограничения:
- Два запроса в секунду
- Для получения ключа API требуется регистрация.
Jsonip.com
$.getJSON( '//jsonip.com/?callback=?', function( data ) {
console.log( JSON.stringify( data, null, 2 ) );
});
Возврат:
{
"ip": "119.152.180.314",
"about": "/about",
"Pro!": "http://getjsonip.com"
}
Ограничения:
- Нет (неограниченная пропускная способность)
Jsontest.com
$.getJSON( '//ip.jsontest.com/?callback=?', function( data ) {
console.log( JSON.stringify( data, null, 2 ) );
});
Возврат:
{
"ip": "119.152.180.314"
}
Ограничения:
- Сильно опускается (превышает квоту), поэтому я не буду использовать его для производства.
IPData.co →
$.get("https://api.ipdata.co", function (response) {
$("#response").html(JSON.stringify(response, null, 4));
}, "jsonp"); Here's a JSFiddle →
Возврат:
{
"ip": "39.45.201.56",
"city": "Sialkot",
"region": "Punjab",
"region_code": "PB",
"country_name": "Pakistan",
"country_code": "PK",
"continent_name": "Asia",
"continent_code": "AS",
"latitude": 32.4228,
"longitude": 74.2898,
"asn": "AS45595",
"organisation": "Pakistan Telecom Company Limited",
"postal": "51310",
"calling_code": "92",
"flag": "https://ipdata.co/flags/pk.png",
"emoji_flag": "🇵🇰",
"emoji_unicode": "U+1F1F5 U+1F1F0",
"is_eu": false,
"languages": [
{
"name": "English",
"native": "English"
},
{
"name": "Urdu",
"native": "اردو",
"rtl": 1
}
],
"currency": {
"name": "Pakistani Rupee",
"code": "PKR",
"symbol": "PKRs",
"native": "₨",
"plural": "Pakistani rupees"
},
"time_zone": {
"name": "Asia/Karachi",
"abbr": "PKT",
"offset": "+0500",
"is_dst": false,
"current_time": "2018-04-18T21:22:54.352584+05:00"
},
"threat": {
"is_tor": false,
"is_proxy": false,
"is_anonymous": false,
"is_known_attacker": false,
"is_known_abuser": false,
"is_threat": false,
"is_bogon": false
}
}
Плюсы:
- 1500 запросов в день бесплатно.
- 11 конечных точек по всему миру, 4 в США, 1 в Канаде, 2 в Европе (Лондоне и Франкфурте), Мумбаи, Сеуле, Сиднее и Сан-Паулу. Быть таким глобальным - большой плюс.
- Скорость в 2 раза по сравнению с другими. Если вы посмотрите на эти данные, то увидите, что IPData.co довольно быстр по сравнению с другими службами IP API - это очень важно, если вы создаете коммерческий сайт.
- Дополнительные точки данных, то есть код вызова, код валюты, имя, символ, данные о часовом поясе, текущее время, смещение по всемирному координированному времени, а также файл флага и флаг смайлика.
- Данные об угрозах на уровне предприятия - только для платных пользователей, но у них есть довольно большие данные аналитики угроз, чтобы проверить, является ли IP-адрес прокси-сервером, известным злоумышленником, нарушителем, пользователем tor или богоном.
Ограничения:
- Меньше бесплатных запросов в день (но это платная услуга, которая намного лучше, чем доступные бесплатные, и должна остаться).
- Неправильный для меня анализ города, что довольно часто. Не уверен, связано ли это с моим интернет-провайдером или чем-то еще.
GeoIPify.WhoIsXMLAPI.com
var ip = "39.45.220.245";
var api_key = "your_api_key";
$(function () {
$.ajax({
url: "https://geoipify.whoisxmlapi.com/api/v1",
dataType: "jsonp",
data: {
apiKey: api_key,
ipAddress: ip
},
success: function (data) {
console.log(JSON.stringify(data, "", 2));
}
});
});
Возврат:
Result for 39.45.220.245
Country: PK
Region: Punjab
City: Sialkot
Latitude: 32.5101
Longitude: 74.54313
Postal code: 51260
Time zone offset by UTC: +05:00
Плюсы:
- 1000 запросов в месяц бесплатно.
- Три уровня оплаты: вы можете использовать его бесплатно, платить единовременно или подписываться ежемесячно или ежегодно.
- Потрясающая клиентура со множеством сопутствующих решений, таких как служба поиска WHOIS / DNS, проверка электронной почты, обратный поиск IP, в сочетании с GEO IP API.
Ограничения:
- 1000 запросов в месяц
- Требуется параметр IP-адреса
- Требуется адрес электронной почты для получения ключа API
- Меньше бесплатных запросов в день (но это платная услуга, которая намного лучше, чем доступные бесплатные, и должна остаться).
IPGeoLocation.io
//api.ipgeolocation.io/ipgeo?apiKey=API_KEY
Возврат:
{
"ip": "39.45.201.56",
"continent_code": "AS",
"continent_name": "Asia",
"country_code2": "PK",
"country_code3": "PAK",
"country_name": "Pakistan",
"country_capital": "Islamabad",
"state_prov": "Khyber Pakhtunkhwa",
"district": "Peshawar",
"city": "Peshawar",
"zipcode": "25120",
"latitude": "34.015",
"longitude": "71.5805",
"is_eu": false,
"calling_code": "+92",
"country_tld": ".pk",
"languages": "ur-PK,en-PK,pa,sd,ps,brh",
"country_flag": "https://ipgeolocation.io/static/flags/pk_64.png",
"isp": "PTCL Triple Play Project Sialkot",
"connection_type": "",
"organization": "Pakistan Telecommuication company limited",
"geoname_id": "1168197",
"currency": {
"name": "Rupee",
"code": "PKR"
},
"time_zone": {
"name": "Asia/Karachi",
"offset": 5,
"is_dst": false,
"current_time": "2018-06-16 16:07:07.708+0500"
}
}
Плюсы:
- 50 000 запросов в месяц бесплатно без дневного лимита.
- Дополнительные точки данных, такие как валюта, местный язык, часовой пояс, флаги, коды стран ISO2 и ISO3 и информация о компании.
- Экономичные платные планы - эта услуга никуда не годится.
Ограничения:
- Требуется адрес электронной почты для получения ключа API.
Прежде чем вы начнете!
Имейте в виду, что, поскольку все это бесплатные услуги, ваш пробег может отличаться с точки зрения превышения квоты и времени безотказной работы, и кто знает, когда / если они будут отключены в будущем. Большинство этих услуг также предлагают платный уровень на случай, если вам нужно что-то более надежное.
Было бы хорошо, если бы вы написали этот список в Твиттере. Никакого давления!
ТОЛЬКО ПРИМЕЧАНИЕ!
👨💻 Я учу тысячи разработчиков, как стать опытными пользователями VSCode →
Первоначально опубликовано на ahmadawais.com 11 июня 2017 г.