Multi-cURL pārsūtīšanas beidzas savā secībā. Ja katram handle piešķīrāt citu proxy, pirmais pabeigtais rezultāts ne vienmēr pieder pirmajam proxy jūsu ievades sarakstā.

Konfigurējot katru handle, pievienojiet stabilu pārsūtīšanas identifikatoru. Ja testējat izvēlamus publiskus galapunktus, HTTP proxy saraksts piedāvā HTTP kandidātus. PHP atklāj libcurl privāto datu mehānismu:

$id = 'job-17';
curl_setopt($handle, CURLOPT_PROXY, 'http://203.0.113.10:8080');
curl_setopt($handle, CURLOPT_PRIVATE, $id);

Kad curl_multi_info_read() ziņo par pabeigtu pārsūtīšanu, izmantojiet atgriezto handle, lai atgūtu identifikatoru:

$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);

Uzturiet lietojumprogrammas ierakstu, kura atslēga ir šis identifikators un kurā ir galamērķis, konfigurētais proxy un mēģinājuma numurs. Atkārtots mēģinājums caur citu proxy ir pelnījis jaunu mēģinājuma ierakstu, pat ja tas pieder pie tā paša kopējā darba.

Turiet trīs adrešu veidus atsevišķi

Konfigurētais proxy galapunkts ir adrese, kas nodota cURL. Savienojuma partnera adrese apraksta tīkla savienojumu, ko atvēra cURL. Galamērķa novērotais izejas IP ir informācija, kas ziņota no otras puses. Tie var atšķirties, jo īpaši ar ķēdes vai pakalpojumu sniedzēja pārvaldītiem proxy.

Privātie metadati reģistrē jūsu paredzēto konfigurāciju; tie nevar pierādīt, kuru IP galamērķis novēroja. Pretēji, galamērķa IP atbilde automātiski nepasaka, kurš handle jūsu programmā to radīja.

Glabājiet drošu proxy identifikatoru ikdienas žurnālos. Ja pilnajā galapunktā ir akreditācijas dati, šī URL reģistrēšana katram neveiksmīgajam pārsūtīšanai izplata paroli visā jūsu kļūdu kolekcijā.

Šis mazais uzskaites solis atvieglo jauktu rezultātu lasīšanu: viens darbs, viens mēģinājums, viens izvēlēts proxy un viens faktiskais rezultāts. Tas arī izvairās no paļaušanās uz nejaušiem handle attēlojumiem, kas mainījās starp PHP cURL API, kuru pamatā ir resursi un objekti.

Saistītie raksti