Какой лучший 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 г.