Ktorý proxy použil tento PHP cURL dopyt?
Rozlíšte nakonfigurovaný proxy, pripojeného partnera a verejný výstup, ktorý vidí cieľ.
„Získaj proxy“ môže v aplikácii PHP cURL znamenať tri rôzne veci. Rozhodnite, ktoré pozorovanie potrebujete, skôr než pridáte ďalší dopyt.
| Otázka | Kde sa pozrieť |
|---|---|
| Ktorý koncový bod aplikácia nakonfigurovala? | Konfigurácia odovzdaná handle |
| Bol pre tento prenos použitý proxy? | Informácie o prenose, ak sú podporované |
| Ktorú verejnú adresu videl web? | Pozorovanie na tomto cieli |
Uchovajte vybraný koncový bod popri handle alebo objekte dopytu. curl_getinfo je rozhranie informácií o prenose, nie všeobecný getter pre každú predtým priradenú hodnotu CURLOPT. Ponechať si konfiguráciu aplikácie je jednoduchšie než snažiť sa zachytiť volania curl_setopt.
Preskúmajte dokončený prenos
Po prenose je pripojený partner dostupný cez CURLINFO_PRIMARY_IP. Keď prvé spojenie ide na proxy, tým partnerom môže byť adresa proxy, nie adresa webu.
$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
: null;
CURLINFO_USED_PROXY bol pridaný do libcurl vo verzii 8.7.0 a sprístupňujú ho kompatibilné zostavenia PHP. Jeho výsledok hlási použitie proxy, nie úplnú URL vybraného proxy. Ak konštanta nie je dostupná, null vyššie znamená, že pozorovanie nie je dostupné, a nie že dopyt išiel priamo.
Čítajte tieto hodnoty, kým handle ešte opisuje danú operáciu. Neúspešné spojenie nemusí dať použiteľnú adresu partnera a explicitný proxy sa stále dá obísť uplatniteľnou výnimkou.
Koncový bod na kontrolu IP odpovedá na tretiu otázku. Jeho odpoveď môže opísať výstup za proxy, zatiaľ čo nakonfigurované meno hostiteľa sa prekladá na iný vstup. V nastaveniach aplikácie sa jedna adresa nesmie nahradiť druhou.