«Атрымаць проксі» у праграме на PHP cURL можа азначаць тры розныя рэчы. Вызначце, якое назіранне вам патрэбна, перш чым дадаваць яшчэ адзін запыт.

ПытаннеДзе глядзець
Які пункт прызначэння наладзіла праграма?Канфігурацыя, перададзеная дэскрыптару
Ці выкарыстоўваўся проксі для гэтай перадачы?Інфармацыя пра перадачу, дзе гэта падтрымліваецца
Які публічны адрас убачыў сайт?Назіранне на гэтым пункце прызначэння

Трымайце выбраны пункт прызначэння побач з дэскрыптарам або аб'ектам запыту. curl_getinfo — інтэрфейс інфармацыі пра перадачу, а не ўніверсальны гетэр для кожнага значэння 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 адказвае на трэцяе пытанне. Яго адказ можа апісваць выхад за проксі, а наладжанае імя хоста развязваецца ў іншы ўваход. Ні адзін адрас не павінен падмяняцца іншым у наладах праграмы.

Падобныя артыкулы