Подключение Proxys.io API v2 к Human Emulator

Для любых других постов по темам связанных с программой
Ответить
Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Подключение Proxys.io API v2 к Human Emulator

Сообщение Support » 06 мар 2018, 19:10

Для всех клиентов PROXYS.IO мы написали специальный PHP класс для подключения работы с этим сервисом прямо из программы.

Что можно делать с помощью этого класса:
  • получить баланс в сервисе
  • получить список доступных вам прокси
  • получить номер версии прокси
  • получить логин пароль
  • получить все для аренды типы ip адресов
  • получить цену для прокси
  • купить прокси
  • продлить заказ
Для работы вам понадобиться Общий ключ для всех заказов, который можно найти в своём кабинете в сервисе PROXYS.IO на странице API ключи.

Там можно найти Ключи для заказов и id заказов, которые тоже могут использоваться в API.

Сам класс:
class Proxysio
{
  // api_key - Общий ключ для всех заказов
  public $api_key;

 // key - Общий ключ для всех заказов
 function __construct($key)
 {
      $this->api_key = $key;
 }

// возвращает ваш баланс в сервисе
function get_balance()
{
    global $browser;

    $json = $browser->send_get_query('http://proxys.io/ru/api/v2/balance','ke ... s->api_key);

    $decoded = json_decode($json);
    //print_r($decoded);

    return $decoded->data->user_balance;
}

// $type - socks5 или http или https
// $order - номер заказа, если не задан то весь список прокси  
// возвращает массив всех доступных вам прокси
function get_proxy($type, $order='')
{
    global $browser;

    $arr_proxies = array();

    $json = $browser->send_get_query('http://proxys.io/ru/api/v2/ip','key='.$this->api_key);

    $decoded = json_decode($json);

    foreach($decoded->data as $data)
    {
         // если задано получать по ордеру
         if($order!=''&& $data->order_id!=$order)
            continue;

         // print_r($decoded);
        foreach($data->list_ip as $item)
        {
            // собираем в зависимости от типа прокси 
            switch($type)
            { 
                 case 'socks5': $ip = $item->ip.':'.$item->port_socks5;
                 break;
                 case 'http': $ip = $item->ip.':'.$item->port_http;
                 break;
                 case 'https': $ip = $item->ip.':'.$item->port_https;
                 break; 
                 default: $ip = $item->ip.':'.$item->port_http;
                 break;
            } 

            $arr_proxies[] = $ip;
        }
   }
    
    return $arr_proxies;
}

// $order - номер заказа, если не задан то для первого заказа в списке  
// возвращает дату окончания заказа
function get_order_expires($order='')
{
    global $browser;

    $arr_proxies = array();

    $json = $browser->send_get_query('http://proxys.io/ru/api/v2/ip','key='.$this->api_key);

    $decoded = json_decode($json);

    foreach($decoded->data as $data)
    {
         // если задано получать по ордеру
         if($order!=''&& $data->order_id!=$order)
            continue;

         return date('d.m.Y H:i:s', $data->expires_at);
    }
}

// $order - номер заказа, если не задан то для первого заказа в списке  
// возвращает номер версии прокси
function get_proxy_version($order='')
{
    global $browser;

    $arr_proxies = array();

    $json = $browser->send_get_query('http://proxys.io/ru/api/v2/ip','key='.$this->api_key);

    $decoded = json_decode($json);

    foreach($decoded->data as $data)
    {
         // если задано получать по ордеру
         if($order!=''&& $data->order_id!=$order)
            continue;

         return $data->ip_version;
    }
}
// $lg - сюда будем помещён логин
// $pwd - сюда будем помещён пароль
// $order - номер заказа, если не задан то для первого заказа в списке
// помещает в $lg логин, в $pwd - пароль
function get_proxy_login_pwd(&$lg, &$pwd, $order='')
{
    global $browser;

    $arr_proxies = array();

    $json = $browser->send_get_query('http://proxys.io/ru/api/v2/ip','key='.$this->api_key);

    $decoded = json_decode($json);

    foreach($decoded->data as $data)
    {
         // если задано получать по ордеру
         if($order!=''&& $data->order_id!=$order)
            continue;

         $lg=$data->username;
         $pwd=$data->password;
    }
}
// доступныe для аренды типов ip адресов
function get_proxy_services()
{
    global $browser;
       
    $json = $browser->send_get_query('http://proxys.io/ru/api/v2/services','');
    $decoded = json_decode($json);

    return $decoded;   
}

// получение цены нового заказа
/* **
$service id типа прокси - может быть
название : IPv4 индивидуальные прокси = id :1
название : IPv6 индивидуальные прокси = id :2
название : IPv4 Shared прокси = id :3
название : IPv6 динамические прокси = id :4
название : IPv4 зарубежные прокси = id :5

$count - количество запрашиваемых прокси
$country - страна прокси  RU, UA, US, NL
$period - на который вы собираетесь покупать прокси
30, 60, 90 дней
** 
*/
function get_price($service,$count, $country, $period)
{
    global $browser;
       
    $json = $browser->send_get_query('http://proxys.io/ru/api/v2/price',"serv ... od=$period");
    $decoded = json_decode($json);

    if($decoded =='')
         return 'покупка прокси с такими настройками не доступна';
    else
      return $decoded->data->price.' '.$decoded->data->currency;   
    
}
// Продление существующего заказа
// $order - номер заказа который вы желаете продлить
function extending_order($order)
{
  // параметры запроса
   $param = array(
  "key" => $this->api_key,
  "order_id"=>  $order
  );

  $data = json_encode($param);
  // отправить через curl 
  $json=$this->send_curl_post('http://proxys.io/ru/api/v2/extending', $data);
  // получим ответ
  $decoded = json_decode($json);
   
  if($decoded->success===false and $decoded->error->message!="")
     return $decoded->error->message;
  else 
     return true;
}

// Покупка новых прокси
/* **
$service - id типа прокси, может быть:
название : IPv4 индивидуальные прокси = id :1
название : IPv6 индивидуальные прокси = id :2
название : IPv4 Shared прокси = id :3
название : IPv6 динамические прокси = id :4
название : IPv4 зарубежные прокси = id :5

$count - количество запрашиваемых прокси
$country - страна прокси  RU, UA, US, NL
$period - на который вы собираетесь покупать прокси
30, 60, 90 дней
** 
*/
function buy_proxy($service,$count, $country, $period)
{
    $param = array(
      "key" => $this->api_key,
      "service"=> $service,
      "count"=>$count,
      "country"=>$country,
      "period"=>$period
      );
    // массив в json
    $data = json_encode($param);
    // post запрос с помощью curl
    $json=$this->send_curl_post('http://proxys.io/ru/api/v2/buy', $data);
    // ответ
    $decoded = json_decode($json);

    if($decoded->success===false and $decoded->error->message!="")
      return $decoded->error->message;
    else 
     return true;
}

// отправить post запрос через curl
// $url - адрес страницы
// $data - массив с данными для json формата
function send_curl_post($url, $data)
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2309.372 Safari/537.36');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array( 
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data)));
                         
     $json = curl_exec($ch);

     return $json;
}
}

Пример использования:

$api_key='c424c434cf24e0cf42e0420fb2ba6f5d42111b259b';

$prox = new Proxysio($api_key);

// получить баланс в сервисе
echo 'баланс на вашем счету : '.$prox->get_balance().'<br>';

// получить список доступных вам прокси 
echo 'доступные вам прокси : <br>';
$arr = $prox->get_proxy('socks5',$order='');
print_r($arr);

// номер версии прокси
echo 'номер версии прокси : '.$prox->get_proxy_version($order='').'<br>';

// получить логин пароль
$lg='';
$pwd='';

$prox->get_proxy_login_pwd($lg, $pwd, $order='');

echo 'логин : '.$lg.'<br>';
echo 'пароль : '.$pwd.'<br>';

echo 'срок заказа заканчивается : '.$prox->get_order_expires($order='').'<br>';

// получить все для аренды типы ip адресов
echo 'доступные для аренды типы ip адресов : <br>';
$arr_serv= $prox->get_proxy_services();
print_r($arr_serv->data);

foreach($arr_serv->data as $item)
{
    echo 'название : '.$item->service_name.'<br>';
    echo 'id :'.$item->service_id.'<br>';
    // получим все тарифы
    foreach($item->tariffs as $tariffs)
    {
      echo 'название тарифа :'.$tariffs->name.'<br>';
      echo 'цена :'.$tariffs->price.' '.$tariffs->currency.'<br>';
    }
}
// получить цену для прокси
// тип IPv4 индивидуальные прокси
// количество 5
// страна прокси RU
// период доступа 30 дней
echo 'цена для прокси : '.$prox->get_price('1','5', 'RU', '30').'<br>';

// купить прокси
// тип IPv4 индивидуальные прокси
// количество 5
// страна прокси RU
// период доступа 30 дней
$res = $prox->buy_proxy('1','5', 'RU', '30');
if($res!==true)
 echo 'не удалось купить проски: '.$res.'<br>';
else
  echo 'прокси успешно купили<br>';


// продлить заказ
$res = $prox->extending_order('22747');
if($res!==true)
 echo 'не удалось продлить текущий заказ : '.$res.'<br>';
else
  echo 'заказ успешно продлили<br>';

Результат работы:

баланс на вашeм счeту : 0
доступныe вам прокси : 
Array
(
[0] => 46.232.63.85:16052
[1] => 46.232.60.246:16052
[2] => 46.232.63.175:16052
[3] => 46.232.62.18:16052
[4] => 46.232.63.46:16052
)
номeр вeрсии прокси : 4
логин : humanemulator
пароль : dio8he
срок заказа заканчиваeтся : 25.03.2018 12:17:31
доступныe для арeнды типы ip адрeсов : 
названиe : IPv4 индивидуальныe прокси
id :1
названиe тарифа :Basic
цeна :150 RUB
названиe тарифа :Bronze
цeна :100 RUB
названиe тарифа :Silver
цeна :95 RUB
названиe тарифа :Gold
цeна :90 RUB
названиe : IPv6 индивидуальныe прокси
id :2
названиe тарифа :Basic
цeна :20 RUB
названиe тарифа :Silver
цeна :15 RUB
названиe тарифа :Gold
цeна :10 RUB
названиe : IPv4 Shared прокси
id :3
названиe тарифа :Basic
цeна :50 RUB
названиe : IPv6 динамичeскиe прокси
id :4
названиe тарифа :Basic
цeна :30 RUB
названиe тарифа :Silver
цeна :25 RUB
названиe тарифа :Gold
цeна :20 RUB
названиe : IPv4 зарубeжныe прокси
id :5
названиe тарифа :Basic
цeна :160 RUB
названиe тарифа :Bronze
цeна :110 RUB
названиe тарифа :Silver
цeна :105 RUB
названиe тарифа :Gold
цeна :100 RUB
цeна для прокси : 500 RUB
нe удалось купить проски: На вашeм счeтe нe достаточно срeдств
нe удалось продлить тeкущий заказ : На вашeм счeтe нe достаточно срeдств

Описание АПИ от самого сервиса можно найти у них на сайте

Ответить