Вот пример Ruby, вызывающий API ipdata.co.
Это быстро и надежно благодаря наличию 10 глобальных конечных точек, каждая из которых способна обрабатывать более 10 000 запросов в секунду!
В этом ответе используется «тестовый» ключ API, который очень ограничен и предназначен только для тестирования нескольких вызовов. Зарегистрируйтесь для получения собственного бесплатного ключа API и получать до 1500 запросов ежедневно на разработку.
Замените 78.8.53.5
любым IP-адресом, который вы хотите найти.
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'
headers = {
:accept => 'application/json'
}
response = RestClient.get 'https://api.ipdata.co/78.8.53.5?api-key=test', headers
puts response
Это даст вам
{
"ip": "78.8.53.5",
"is_eu": true,
"city": "G\u0142og\u00f3w",
"region": "Lower Silesia",
"region_code": "DS",
"country_name": "Poland",
"country_code": "PL",
"continent_name": "Europe",
"continent_code": "EU",
"latitude": 51.6557,
"longitude": 16.089,
"asn": "AS12741",
"organisation": "Netia SA",
"postal": "67-200",
"calling_code": "48",
"flag": "https://ipdata.co/flags/pl.png",
"emoji_flag": "\ud83c\uddf5\ud83c\uddf1",
"emoji_unicode": "U+1F1F5 U+1F1F1",
"carrier": {
"name": "Netia",
"mcc": "260",
"mnc": "07"
},
"languages": [
{
"name": "Polish",
"native": "Polski"
}
],
"currency": {
"name": "Polish Zloty",
"code": "PLN",
"symbol": "z\u0142",
"native": "z\u0142",
"plural": "Polish zlotys"
},
"time_zone": {
"name": "Europe/Warsaw",
"abbr": "CEST",
"offset": "+0200",
"is_dst": true,
"current_time": "2018-08-29T15:34:23.518065+02: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
},
}
person
Jonathan
schedule
06.11.2017