{
   продукт: "информация", // передача в формате JSON
   удобно: да, // через простой и понятный интерфейс
   быстро: да, // без каких-либо ограничений
   доступно: да // за символическую плату
}

услуги / геолокация / список IP диапазонов по странам

Данный пакет даст вам возможность получить список всех IP адресов по странам. Вы указываете в запросе нужные страны, в ответе получаете массив IP адресов (диапазонов).
  • post https://ip.getyourbit.com/country/
    запрос ответ
    все запросы нужно передавать в формате JSON в виде объекта: { ...различные параметры запроса } данный пакет включает следующие возможные параметры:
    • country string международный (ISO) код страны например: "US"
    • token string уникальный хэш активной сессии для подтверждения доступа, выдается при авторизации. Передавать нужно каждый запрос.
    • locale string|object локаль в формате ISO, например, "en", "en-US", "en_US" или объект { "language": "en", "country": "US" }. От этого поля зависит на каком языке вы получите данные. Если его проигнорировать, то язык будет выбран автоматически, исходя из вашего запроса. При невозможности этого, значение проставится по умолчанию. Регистр значения не имеет. по умолчанию: "en"
    • dateFormat string формат получения даты и времени. По умолчанию или если передана пустая строка, в ответе возвращается UNIX-время в миллисекундах, но вы можете указать свой формат. Он записывается в стиле функции strftime на многих языках программирования, например, "%d/%m/%Y %H:%M:%S" => "01/01/1970 12:34:56"
    • case string формат ключей получаемых данных. Например, "camel" вернет ключ в виде "someField", "underscore" => "some_field". по умолчанию: "camel"
    • strongLocale boolean если true, то все переводимые строковые данные вы получите на нужном вам языке, либо они будут пустые, если на выбранном языке отсутствуют. Если же false, то даже в случаи отcутствия, вы получите данные, но на языке локали по умолчанию. по умолчанию: false
    • strongFields boolean если true, то в ответе будут только те поля, которые содержат хоть какое-то значение, если false, то вы получите все ключи, даже если у них пустые значения. по умолчанию: true
    • scroll string в режиме скроллинга вы получаете данные по кускам, данный параметр представляет собой хэш-строку, которая выдается в каждом запросе, кроме последнего, когда данные уже закончатся. Каждый новый запрос, после первого, вы должны использовать уже не различные фильтры и уточнения, а посланное значение поля scroll, чтобы получить следующую порцию данных.
    • size integer количество элементов, которое вы хотите получить в каждом наборе данных в режиме скроллинга. Имейте ввиду, на сервере могут быть ограничения по максимальному значению. по умолчанию: 100
    все ответы приходят в виде JSON объекта. Если запрос вызвал какую-либо ошибку, то ответ будет содержать следующее: { "error": true, "message": "сообщение об ошибке", ...прочие уточняющие метаданные } Если в теле ответа есть свойство "scroll", то значит вы работаете в режиме скроллинга и будете получать не все данные сразу, а по частям. Для того чтобы получить каждый следующий кусок, вам нужно сделать новый запрос, указав в нем такой же параметр "scroll" с полученным значением из ответа. И так до тех пор, пока это поле не окажется уже пустым. { "scroll": "hashString", "data": часть данных } если запрос прошел успешно, то в ответ вы получите: { "data": [значение1, значение2, ...] } значения результата будут представлять собой:
    • cidr string диапазон IP адресов например: "10.1.2.33/27"
  • вы можете посылать все ключи объекта запроса в любом из доступных форматов написания. В примерах приведен стиль "camel" (camelCase). Cписок всех доступных форматов можно посмотреть здесь.
  • логин и пароль авторизации на api-серверах для каждой услуги генерируется индивидуально, после подписки. Посмотреть эти данные можно у себя в профиле, в разделе подписок.
const GetYourBit = require('getyourbit');
const api = new GetYourBit.Api('https://ip.getyourbit.com');

const data = {
  size: 200, // размер порции получаемых данных за раз
  country: ['NP'] //  массив с кодами необходимых стран
};

// авторизация
api.auth('login', 'password').then(() => {
  // получение данных  
  return api.scroll('/country/', data, (body, chunkData, fullData) => {
    // эта функция будет выполняться при получении каждой порции данных
    console.log(body, chunkData, fullData);
  });
})
.then((fullData) => {
  console.log(fullData); 

  // завершение сессии (не обязательно)
  return api.logout();
})
.catch((err) => {
  console.log(err);
});
require 'vendor/autoload.php';    
use GetYourBit\Api;

$api = new Api('https://ip.getyourbit.com');

$data = array(
    'size'=>200, // эта функция будет выполняться при получении каждой порции данных
    'country'=>array('NP') // массив с кодами необходимых стран
);

// авторизация
$api->auth('login', 'password');

// получение данных
$fullData = $api->scroll("/country/", $data, function($body, $chunkData, $fullData) {
    // эта функция будет выполняться при получении каждой порции данных
    var_dump($body, $chunkData, $fullData);
});
var_dump($fullData);

// завершение сессии (не обязательно)
$api->logout();
from getyourbit import Api

api = Api('https://ip.getyourbit.com')

data = {
    'size': 200, # размер порции получаемых данных за раз
    "country": (u"NP") # массив с кодами необходимых стран
}

def on_chunk(body, chunkData, fullData):
    # эта функция будет выполняться при получении каждой порции данных
    print(body, chunkData, fullData)

# авторизация
api.auth('login', 'password')

# получение данных   
fullData = api.scroll('/country/', data, on_chunk)
print(fullData)

# завершение сессии (не обязательно) 
api.logout()
  • * под месяцем подразумевается 30 дней
  • ** вы можете в любой момент отписаться и получить деньги обратно на ваш баланс, пропорционально оставшемуся до конца подписки времени