„Вземи прокси“ в PHP cURL приложение може да означава три различни неща. Решете кое наблюдение ви трябва, преди да добавите още една заявка.

ВъпросКъде да гледаме
Коя крайна точка е конфигурирало приложението?Конфигурацията, подадена на манипулатора
Използван ли е прокси сървър за това прехвърляне?Информация за прехвърлянето, където се поддържа
Кой публичен адрес видя сайтът?Наблюдение на тази дестинация

Пазете избраната крайна точка до манипулатора или обекта на заявката. curl_getinfo е интерфейс за информация за прехвърлянето, а не общ getter за всяка предварително зададена стойност на CURLOPT. Запазването на конфигурацията на приложението е по-просто от опитите да прихванете извикванията на curl_setopt.

Прегледайте завършеното прехвърляне

След прехвърлянето свързаният партньор е достъпен чрез CURLINFO_PRIMARY_IP. Когато първата връзка отива към прокси сървър, този партньор може да е адресът на прокси сървъра, а не адресът на сайта.

$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
    ? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
    : null;

CURLINFO_USED_PROXY е добавен в libcurl във версия 8.7.0 и се предоставя от съвместими PHP сборки. Резултатът му съобщава за използване на прокси, а не пълния URL на избрания прокси сървър. Ако константата липсва, null по-горе означава, че наблюдението не е достъпно, а не че заявката е минала директно.

Четете тези стойности, докато манипулаторът все още описва въпросната операция. Неуспешна връзка може да не даде полезен адрес на партньора, а явен прокси сървър все още може да бъде заобиколен чрез приложимо изключение.

Крайна точка за проверка на IP отговаря на третия въпрос. Отговорът ѝ може да описва изход зад прокси сървъра, докато конфигурираното име на хост се разрешава до различен вход. Нито един от двата адреса не бива да се замества с другия в настройките на приложението.

Подобни статии