Использую cURL в PHP для работы с API, соединение идет через прокси.
На рабочей машине (Windows - PHP 7.1.0) в случае недоступности прокси, curl_error() возвращает:
Failed to connect to 11.22.33.44 port 1234: Timed out
Где 11.22.33.44, это адрес прокси. А в случае, если недоступен именно сайт, то ошибка будет другой. Таким образом, я могу анализировать этот вывод и разделять ситуации, когда недоступен сам ресурс и когда недоступен прокси.
А вот на сервере (Ubuntu - PHP 7.2.5), когда недоступен прокси, я получаю только: Connection timed out after 100000 milliseconds
В мануале PHP написано, что curl_error возвращает только последнюю ошибку. А как получить все?
В мануале cURL есть про CURLOPT_ERRORBUFFER, но я так понимаю, это отсутствует в PHP.
Может быть, есть какие-то еще способы решить вопрос с мониторингом прокси?
Так можно понять что совсем все плохо. Но мне хочется видеть еще и "здоровье" прокси. Не продали ли мне шеред прокси, вместо индивидуального. Некоторые провайдеры прокси перегружены, пинг пройдет, а потом случится обрыв по время реальной работы. Мой скрипт делает около 100 запросов с течение нескольких минут. И прокси может дать сбой в любой момент, я хочу это видеть. А пинговать не только в начале работы скрипта, а перед каждым запросом, мне кажется перебором. И в любом случае бывают ситуации, когда обрыв происходит уже во время соединения с сайтом (по вине прокси), вот именно это интересно отследить.