Компьютерное

Использование curl в php через прокси

Бывает так, что нужно работать в php с библиотекой curl для обращения, например, к какому-либо API сервиса. И бывает очень неприятно, когда доступ к API оказывается заблокирован для вашего сервера по IP. Выпутаться из данной ситуации можно перенаправляя запросы сервера через прокси. Это можно делать через системные настройки, засылая ВСЕ запросы через прокси-сервер либо выполняя именно те запросы, которые вам требуются.

В принципе всё просто. У вас есть запрос:

$url = "http://www.example.com/API/v2.0/";
function get_url($url) 
{
    $ch = curl_init();
     
    if($ch === false)
    {
        die('Failed to create curl object');
    }
     
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
 
echo get_url($url);

Вам потребуется изменить запрос:

$url = "http://www.example.com/API/v2.0/";
function get_url($url) {
    $proxy_ip = 'your_proxy_ip:proxy_port'; //IP адрес сервера прокси и порт
    $loginpassw = 'login:password';  //логин и пароль для прокси
    
    $ch = curl_init();
    
    if($ch === false)
    {
        die('Failed to create curl object');
    }
    
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

    //Указываем к какому прокси подключаемся и передаем логин-пароль
    curl_setopt($ch, CURLOPT_PROXY, $proxy_ip );
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, $loginpassw);

    //доступные значения для типа используемого прокси-сервера:  CURLPROXY_HTTP (по умолчанию), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A или CURLPROXY_SOCKS5_HOSTNAME. 
    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

    $data = curl_exec($ch);
    curl_close($ch);
    return $data; 
} 

echo get_url($url);

Из комментариев к коду, я думаю и так понятно что изменилось и какие значения следует использовать. Надеюсь у вас всё получится ;)

Mirivlad

Скромный труженик консоли и окошек.

Share
Published by
Mirivlad

Recent Posts

Реверс-инжиниринг электроники и ПО

Реверс инжиниринг электроники и программного обеспечения — увлекательная и важная дисциплина, играющая ключевую роль в…

4 месяца ago

Что лучше Apple iPhone 14 или iPhone 13: сравниваем модели

Рынок смартфонов не стоит на месте и каждый год пополняется новыми моделями. Компания Apple традиционно…

4 месяца ago

Как открыть интернет-магазин с нуля в 2024 году?

Запуск онлайн-бизнеса может показаться сложной задачей, но на самом деле этот процесс можно существенно упростить,…

6 месяцев ago

Как проверить текст на уникальность?

Если Вы хотите продвинуть свой сайт в поисковых системах, одним из самых важных аспектов является…

9 месяцев ago

ТОП лучших смартфонов Samsung 2024 года: рейтинг по цене и качеству

Корейская компания Samsung зарекомендовала себя на потребительском рынке как производитель флагманов, так и бюджетных смартфонов.…

1 год ago

Как навсегда удалить профиль в Instagram?

В то время как множество пользователей регистрируются в Инстаграм, другие ищут способы как удалить аккаунт…

2 года ago