Millist puhverserverit kasutas see PHP multi-cURL ülekanne?
Hoidke puhverserveri metaandmeid iga cURL-käepideme juures ning eristage konfigureeritud marsruut sihtkoha poolt nähtavast väljund-IP-st.
Multi-cURL ülekanded lõpevad oma järjekorras. Kui määrasite igale käepidemele erineva puhverserveri, ei pruugi esimene lõppenud tulemus kuuluda teie sisendloendi esimesele puhverserverile.
Lisage iga käepideme konfigureerimisel püsiv ülekande identifikaator. Kui testite valitavaid avalikke lõpp-punkte, pakub HTTP puhverserverite loend HTTP kandidaate. PHP paljastab libcurli privaatandmete mehhanismi:
$id = 'job-17';
curl_setopt($handle, CURLOPT_PROXY, 'http://203.0.113.10:8080');
curl_setopt($handle, CURLOPT_PRIVATE, $id);
Kui curl_multi_info_read() teatab lõppenud ülekandest, kasutage identifikaatori taastamiseks tagastatud käepidet:
$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);
Pidage selle identifikaatoriga võtmetaotud rakendusekirjet, mis sisaldab sihtkohta, konfigureeritud puhverserverit ja katse numbrit. Teise puhverserveri kaudu tehtud korduskatse väärib uut katse kirjet, isegi kui see kuulub sama üldise töö juurde.
Hoidke kolme tüüpi aadressid eraldi
Konfigureeritud puhverserveri lõpp-punkt on cURL-ile antud aadress. Ühenduse partneri aadress kirjeldab võrguühendust, mille cURL avas. Sihtkoha poolt nähtav väljund-IP on teiselt poolt teatatud teave. Need võivad erineda, eriti ahel- või teenusepakkuja hallatavate puhverserverite puhul.
Privaatsed metaandmed registreerivad teie kavatsetud konfiguratsiooni; need ei suuda tõestada, millist IP-d sihtkoht nägi. Vastupidi, sihtkoha IP-vastus ei ütle automaatselt, milline käepide teie programmis selle tekitas.
Hoidke turvalist puhverserveri identifikaatorit rutiinsetes logides. Kui täielik lõpp-punkt sisaldab volitusi, levitab selle URL-i logimine iga ebaõnnestunud ülekande kohta parooli kogu teie vigade kogumikus.
See väike raamatupidamissamm muudab segatud tulemused loetavamaks: üks töö, üks katse, üks valitud puhverserver ja üks tegelik tulemus. See väldib ka toetumist juhuslikele käepideme esitustele, mis muutusid PHP ressurssi- ja objektipõhiste cURL API-de vahel.