Что можно делать с помощью этого класса:
- получить баланс в сервисе
- получить список доступных вам прокси
- получить номер версии прокси
- получить логин пароль
- получить все для аренды типы ip адресов
- получить цену для прокси
- купить прокси
- продлить заказ
Там можно найти Ключи для заказов и 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дств
Описание АПИ от самого сервиса можно найти у них на сайте