Ответ 1
Я хотел бы использовать веб-сервис, который может возвращать JSON (вместе с jQuery, чтобы сделать вещи проще). Ниже приведены все бесплатные службы поиска IP и информацию, которую они возвращают. Если вам что-то известно, добавьте комментарий, и я обновлю этот ответ.
DB-IP-
Попробуйте: http://api.db-ip.com/addrinfo?api_key=<ваш ключ API & gt; & addr = & lt; ip address & gt;
Возвращает:
{
"address": "116.12.250.1",
"country": "SG",
"stateprov": "Central Singapore",
"city": "Singapore"
}
Ограничения:
- 2500 запросов в день
- Не поддерживает обратные вызовы JSONP
- Требуется параметр IP-адреса
- Требуется адрес электронной почты, чтобы получить ключ API
- Нет SSL (https) с бесплатным планом
Geobytes
Попробуйте: http://gd.geobytes.com/GetCityDetails
$.getJSON('http://gd.geobytes.com/GetCityDetails?callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"geobytesforwarderfor": "",
"geobytesremoteip": "116.12.250.1",
"geobytesipaddress": "116.12.250.1",
"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 запросов в час
- Нет SSL (https) с бесплатным планом
- Может вернуть неправильное местоположение (я в Сингапуре, а не в Саудовской Аравии)
GeoIPLookup.io
Попробуйте: https://json.geoiplookup.io/api
$.getJSON('https://json.geoiplookup.io/api?callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1",
"isp": "SGPOST",
"org": "Singapore Post Ltd",
"hostname": "116.12.250.1",
"longitude": "103.807",
"latitude": "1.29209",
"postal_code": "",
"city": "Singapore",
"country_code": "SG",
"country_name": "Singapore",
"continent_code": "AS",
"region": "Central Singapore",
"district": "",
"timezone_name": "Asia\/Singapore",
"connection_type": "",
"asn": "AS3758 SingNet",
"currency_code": "SGD",
"currency_name": "Singapore Dollar",
"success": true
}
Ограничения:
- Неизвестный
geoPlugin
Попробуйте: http://www.geoplugin.net/json.gp
$.getJSON('http://www.geoplugin.net/json.gp?jsoncallback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"geoplugin_request": "116.12.250.1",
"geoplugin_status": 200,
"geoplugin_credit": "Some of the returned data includes GeoLite data created by MaxMind, available from <a href=\\'http://www.maxmind.com\\'>http://www.maxmind.com</a>.",
"geoplugin_city": "Singapore",
"geoplugin_region": "Singapore (general)",
"geoplugin_areaCode": "0",
"geoplugin_dmaCode": "0",
"geoplugin_countryCode": "SG",
"geoplugin_countryName": "Singapore",
"geoplugin_continentCode": "AS",
"geoplugin_latitude": "1.2931",
"geoplugin_longitude": "103.855797",
"geoplugin_regionCode": "00",
"geoplugin_regionName": "Singapore (general)",
"geoplugin_currencyCode": "SGD",
"geoplugin_currencySymbol": "$",
"geoplugin_currencySymbol_UTF8": "$",
"geoplugin_currencyConverter": 1.4239
}
Ограничения:
- 120 запросов в минуту
- Нет SSL (https) с бесплатным планом
Цель хакера
Попробуйте: https://api.hackertarget.com/geoip/?q=<ipaddress & gt;
Возвращает:
IP Address: 116.12.250.1
Country: SG
State: N/A
City: Singapore
Latitude: 1.293100
Longitude: 103.855797
Ограничения:
- 50 запросов в день
- Не поддерживает обратные вызовы JSONP
- Требуется параметр IP-адреса
- Возвращает простой текст
ipapi.co
Попробуйте: https://ipapi.co/json/
$.getJSON('https://ipapi.co/json/', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1",
"city": "Singapore",
"region": "Central Singapore Community Development Council",
"country": "SG",
"country_name": "Singapore",
"postal": null,
"latitude": 1.2855,
"longitude": 103.8565,
"timezone": "Asia/Singapore"
}
Ограничения:
- 1000 запросов в день
- Требуется SSL (https)
IP-API.com
Попробуйте: http://ip-api.com/json
$.getJSON('http://ip-api.com/json?callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"as": "AS3758 SingNet",
"city": "Singapore",
"country": "Singapore",
"countryCode": "SG",
"isp": "SingNet Pte Ltd",
"lat": 1.2931,
"lon": 103.8558,
"org": "Singapore Telecommunications",
"query": "116.12.250.1",
"region": "01",
"regionName": "Central Singapore Community Development Council",
"status": "success",
"timezone": "Asia/Singapore",
"zip": ""
}
Ограничения:
- 150 запросов в минуту
- Нет SSL (https) с бесплатным планом
Ipdata.co
Попробуйте: https://api.ipdata.co
$.getJSON('https://api.ipdata.co', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1",
"city": "Singapore",
"region": "Central Singapore Community Development Council",
"region_code": "01",
"country_name": "Singapore",
"country_code": "SG",
"continent_name": "Asia",
"continent_code": "AS",
"latitude": 1.2931,
"longitude": 103.8558,
"asn": "AS3758",
"organisation": "SingNet",
"postal": "",
"calling_code": "65",
"flag": "https://ipdata.co/flags/sg.png",
"emoji_flag": "\ud83c\uddf8\ud83c\uddec",
"emoji_unicode": "U+1F1F8 U+1F1EC",
"is_eu": false,
"languages": [
{
"name": "English",
"native": "English"
},
{
"name": "Malay",
"native": "Bahasa Melayu"
},
{
"name": "Tamil",
"native": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd"
},
{
"name": "Chinese",
"native": "\u4e2d\u6587"
}
],
"currency": {
"name": "Singapore Dollar",
"code": "SGD",
"symbol": "S$",
"native": "$",
"plural": "Singapore dollars"
},
"time_zone": {
"name": "Asia/Singapore",
"abbr": "+08",
"offset": "+0800",
"is_dst": false,
"current_time": "2018-05-09T12:28:49.183674+08: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 запросов в день
- Требуется адрес электронной почты, чтобы получить ключ API
- Требуется SSL (https)
Поиск IP
Попробуйте: https://ipfind.co/me?auth=<ваш ключ API & gt;
$.getJSON('https://ipfind.co/me?auth=<your_api_key>', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip_address": "116.12.250.1",
"country": "Singapore",
"country_code": "SG",
"continent": "Asia",
"continent_code": "AS",
"city": "Singapore",
"county": null,
"region": "Central Singapore",
"region_code": "01",
"timezone": "Asia/Singapore",
"owner": null,
"longitude": 103.8565,
"latitude": 1.2855,
"currency": "SGD",
"languages": [
"cmn",
"en-SG",
"ms-SG",
"ta-SG",
"zh-SG"
]
}
Ограничения:
- 300 запросов в день
- Требуется регистрация, чтобы получить ключ API
ipgeolocation
Попробуйте: https://api.ipgeolocation.io/ipgeo?apiKey=<ваш ключ API & gt;
$.getJSON('https://api.ipgeolocation.io/ipgeo?apiKey=<your_api_key>', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1",
"continent_code": "AS",
"continent_name": "Asia",
"country_code2": "SG",
"country_code3": "SGP",
"country_name": "Singapore",
"country_capital": "Singapore",
"state_prov": "Central Singapore",
"district": "",
"city": "Singapore",
"zipcode": "",
"latitude": "1.29209",
"longitude": "103.807",
"is_eu": false,
"calling_code": "+65",
"country_tld": ".sg",
"languages": "cmn,en-SG,ms-SG,ta-SG,zh-SG",
"country_flag": "https://ipgeolocation.io/static/flags/sg_64.png",
"isp": "SGPOST",
"connection_type": "",
"organization": "Singapore Post Ltd",
"geoname_id": "1880252",
"currency": {
"name": "Dollar",
"code": "SGD"
},
"time_zone": {
"name": "Asia/Singapore",
"offset": 8,
"is_dst": false,
"current_time": "2018-06-12 09:06:49.028+0800"
}
}
Ограничения:
- 50 000 запросов в месяц
- Требуется регистрация, чтобы получить ключ API
ipify
Попробуйте: https://api.ipify.org/?format=json
$.getJSON('https://api.ipify.org?format=jsonp&callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1"
}
Ограничения:
- Без
IPInfoDB
Попробуйте: https://api.ipinfodb.com/v3/ip-city/?key=<ваш ключ API & gt; & format = json
$.getJSON('https://api.ipinfodb.com/v3/ip-city/?key=<your_api_key>&format=json&callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"statusCode": "OK",
"statusMessage": "",
"ipAddress": "116.12.250.1",
"countryCode": "SG",
"countryName": "Singapore",
"regionName": "Singapore",
"cityName": "Singapore",
"zipCode": "048941",
"latitude": "1.28967",
"longitude": "103.85",
"timeZone": "+08:00"
}
Ограничения:
- Два запроса в секунду
- Требуется регистрация, чтобы получить ключ API
ipinfo.io
Попробуйте: https://ipinfo.io/json
$.getJSON('https://ipinfo.io/json', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1",
"hostname": "No Hostname",
"city": "Singapore",
"region": "Central Singapore Community Development Council",
"country": "SG",
"loc": "1.2931,103.8558",
"org": "AS3758 SingNet"
}
Ограничения:
- 1000 запросов в день
Ipregistry
Попробуйте: https://api.ipregistry.co/?key=<ваш ключ API & gt;
$.getJSON('https://api.ipregistry.co/?key=<your_api_key>', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip" : "116.12.250.1",
"type" : "IPv4",
"hostname" : null,
"carrier" : {
"name" : null,
"mcc" : null,
"mnc" : null
},
"connection" : {
"asn" : 3758,
"domain" : "singnet.com.sg",
"organization" : "SingNet Pte Ltd",
"type" : "isp"
},
"currency" : {
"code" : "SGD",
"name" : "Singapore Dollar",
"plural" : "Singapore dollars",
"symbol" : "SGD",
"symbol_native" : "SGD",
"format" : {
"negative" : {
"prefix" : "-SGD",
"suffix" : ""
},
"positive" : {
"prefix" : "SGD",
"suffix" : ""
}
}
},
"location" : {
"continent" : {
"code" : "AS",
"name" : "Asia"
},
"country" : {
"area" : 692.0,
"borders" : [ ],
"calling_code" : "65",
"capital" : "Singapore",
"code" : "SG",
"name" : "Singapore",
"population" : 5638676,
"population_density" : 8148.38,
"flag" : {
"emoji" : "🇸🇬",
"emoji_unicode" : "U+1F1F8 U+1F1EC",
"emojitwo" : "https://cdn.ipregistry.co/flags/emojitwo/sg.svg",
"noto" : "https://cdn.ipregistry.co/flags/noto/sg.png",
"twemoji" : "https://cdn.ipregistry.co/flags/twemoji/sg.svg",
"wikimedia" : "https://cdn.ipregistry.co/flags/wikimedia/sg.svg"
},
"languages" : [ {
"code" : "cmn",
"name" : "cmn",
"native" : "cmn"
}, {
"code" : "en",
"name" : "English",
"native" : "English"
}, {
"code" : "ms",
"name" : "Malay",
"native" : "Melayu"
}, {
"code" : "ta",
"name" : "Tamil",
"native" : "தமிழ்"
}, {
"code" : "zh",
"name" : "Chinese",
"native" : "中文"
} ],
"tld" : ".sg"
},
"region" : {
"code" : null,
"name" : "Singapore"
},
"city" : "Singapore",
"postal" : "96534",
"latitude" : 1.28967,
"longitude" : 103.85007,
"language" : {
"code" : "cmn",
"name" : "cmn",
"native" : "cmn"
},
"in_eu" : false
},
"security" : {
"is_bogon" : false,
"is_cloud_provider" : false,
"is_tor" : false,
"is_tor_exit" : false,
"is_proxy" : false,
"is_anonymous" : false,
"is_abuser" : false,
"is_attacker" : false,
"is_threat" : false
},
"time_zone" : {
"id" : "Asia/Singapore",
"abbreviation" : "SGT",
"current_time" : "2019-09-29T23:13:32+08:00",
"name" : "Singapore Standard Time",
"offset" : 28800,
"in_daylight_saving" : false
}
}
Ограничения:
- Бесплатный план включает в себя 100 000 запросов
- Требуется регистрация, чтобы получить ключ API
ipstack (ранее freegeoip.net)
Попробуйте: http://api.ipstack.com/<ipaddress & gt;? Access_key = & lt; ваш ключ API & gt;
$.getJSON('http://api.ipstack.com/<ip_address>?access_key=<your_api_key>', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1",
"type": "ipv4",
"continent_code": "AS",
"continent_name": "Asia",
"country_code": "SG",
"country_name": "Singapore",
"region_code": "01",
"region_name": "Central Singapore Community Development Council",
"city": "Singapore",
"zip": null,
"latitude": 1.2931,
"longitude": 103.8558,
"location": {
"geoname_id": 1880252,
"capital": "Singapore",
"languages": [{
"code": "en",
"name": "English",
"native": "English"
},
{
"code": "ms",
"name": "Malay",
"native": "Bahasa Melayu"
},
{
"code": "ta",
"name": "Tamil",
"native": "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd"
},
{
"code": "zh",
"name": "Chinese",
"native": "\u4e2d\u6587"
}],
"country_flag": "http:\/\/assets.ipstack.com\/flags\/sg.svg",
"country_flag_emoji": "\ud83c\uddf8\ud83c\uddec",
"country_flag_emoji_unicode": "U+1F1F8 U+1F1EC",
"calling_code": "65",
"is_eu": false
}
}
ограничения:
- 10 000 запросов в месяц
- Требуется параметр IP-адреса
- Требуется регистрация, чтобы получить ключ API
- Нет SSL (https) с бесплатным планом
jsonip.com
Попробуйте: https://jsonip.com
$.getJSON('https://jsonip.com/?callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1",
"about": "/about",
"Pro!": "http://getjsonip.com",
"reject-fascism": "Liberal America will prevail"
}
Ограничения:
- Ответ включает в себя upsell и политику
JSON Test
Попробуйте: http://ip.jsontest.com/
$.getJSON('http://ip.jsontest.com/?callback=?', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"ip": "116.12.250.1"
}
Ограничения:
- Нет SSL (https)
- Уходит много (сверх квоты), поэтому я не буду использовать его для производства
- Возвращает IPv6-адрес, если он у вас есть, что может быть не так, как вы хотите
Nekudo
Попробуйте: https://geoip.nekudo.com/api
$.getJSON('https://geoip.nekudo.com/api', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"city": "Singapore",
"country": {
"name": "Singapore",
"code": "SG"
},
"location": {
"accuracy_radius": 50,
"latitude": 1.2855,
"longitude": 103.8565,
"time_zone": "Asia/Singapore"
},
"ip": "116.12.250.1"
}
Ограничения:
- Заблокировано рекламодателями с помощью списка EasyPrivacy
SmartIP
Попробуйте: https://api.smartip.io/?api_key=<ваш ключ API & gt;
$.getJSON('https://api.smartip.io/?api_key=<your_api_key>', function(data) {
console.log(JSON.stringify(data, null, 2));
});
Returns:
{
"status-code": 200,
"country": {
"is-metric": true,
"is-in-europe": false,
"region-geo-id": null,
"continent-geo-id": 6255147,
"country-geo-id": 1880251,
"region-code": null,
"region-name": null,
"continent-code": "AS",
"continent-name": "Asia",
"capital": "Singapur",
"country-name": "Singapore",
"country-two-letter-iso-code": "SG",
"country-iso-code": "SG"
},
"location": {
"metro-code": null,
"longitude": 103.8547,
"latitude": 1.2929,
"timezone": "Asia/Singapore",
"zip-code": null,
"city": "Singapore"
},
"asn": {
"organization": "SingNet",
"asn": "AS3758"
},
"currency": {
"native-name": "新币",
"code": "SGD",
"name": "Singapore Dollar",
"symbol": "$"
},
"timezone": {
"is-daylight-saving": false,
"gmt-offset": 28800,
"date-time": "2019-08-23T14:22:11+08:00",
"microsoft-name": "Singapore Standard Time",
"iana-name": "Asia/Singapore"
},
"security": {
"is-crawler": false,
"is-proxy": false,
"is-tor": false,
"tor-insights": null,
"proxy-insights": null,
"crawler-insights": null
},
"crypto": {
"is-crypto-node": false,
"crypto-insights": null
},
"user-agent": {
"os": {
"name": "Windows",
"platform": "x64",
"version": "10",
"family": "Windows"
},
"device": {
"brand": "",
"model": "",
"family": "desktop"
},
"engine-version": "",
"engine": "Blink",
"name": "Chrome",
"type": "browser",
"header": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
"version": "76.0.3809.100",
"family": "Chrome"
},
"error": null,
"hostname": "116.12.250.1",
"ip-type": "ipv4",
"ip": "116.12.250.1"
}
Ограничения:
- 250 000 запросов в месяц
- Требуется регистрация, чтобы получить ключ API
- Требуется SSL (https)
Имейте в виду, что, поскольку все это бесплатные услуги, ваш пробег может варьироваться с точки зрения превышения квоты и времени безотказной работы, и кто знает, когда/если они будут переведены в автономный режим в будущем (выставка A: Telize). Большинство этих услуг также предлагают платный уровень, если вам нужны дополнительные функции, такие как поддержка SSL.
Кроме того, как отметил Скобальич в комментариях ниже, квоты на запросы в основном носят академический характер, поскольку это происходит на стороне клиента, и большинство конечных пользователей никогда не превысят эту квоту.
ОБНОВЛЕНИЕ
- 01.02.2016: Удалено Telize (больше не предлагается бесплатный тариф)
- 18.04.2016: удалено freegeoip.net (не работает)
- 26.04.2016: добавлен DB-IP
- 26.04.2016: добавлена цель хакера
- 06.07.2016: восстановлено freegeoip.net
- 06.07.2016: удалено ip-json.rhcloud.com (неработающая ссылка)
- 21.12.2016: Удалена цель хакера (не работает)
- 10.02.2017: Добавлено Некудо
- 20.04.2017: добавлено ipapi.co (спасибо Ахмаду Авайсу)
- 24.04.2017: Восстановлена цель хакера
- 24.04.2017: Удалено Snoopi.io (не работает)
- 16.07.2017: добавлен IP Find (спасибо JordanC)
- 16.07.2017: Обновлено ограничение для бесплатных планов, которые не поддерживают SSL
- 25.09.2017: добавлены тупые веб-инструменты (спасибо Cœur)
- 16.03.2008: добавлено Ipdata.co (спасибо Джонатану)
- 14.04.2008: переименован в freegeoip.net в ipstack (спасибо MA-Maddin)
- 16.04.2008: добавлено GeoIPLookup.io (спасибо, Роб Ваа)
- 6/11/2018: добавлено ipgeolocation (спасибо Эджазу Ахмеду)
- 31.07.2009: Добавлена Ipregistry (спасибо Лорану)
- 16.08.2009: добавлено SmartIP.io (спасибо kevinj)
- 22.08.2009: Удалены тупые веб-инструменты (не работают)