Які проксі выкарыстала тое перадача PHP multi-cURL?
Захоўвайце метаданыя проксі для кожнага дэскрыптара cURL і адрознівайце наладжаны маршрут ад выходнага IP, які бачыць пункт прызначэння.
Перадачы multi-cURL завяршаюцца ў сваім парадку. Калі вы прызначылі розныя проксі кожнаму дэскрыптару, першы завершаны вынік не абавязкова належыць першаму проксі ў вашым спісе ўводу.
Далучайце стабільны ідэнтыфікатар перадачы падчас налады кожнага дэскрыптара. Калі вы тэстуеце публічныя канчатковыя пункты, якія можна выбраць, спіс проксі HTTP прапануе кандыдатаў HTTP. PHP адкрывае механізм прыватных даных libcurl:
$id = 'job-17';
curl_setopt($handle, CURLOPT_PROXY, 'http://203.0.113.10:8080');
curl_setopt($handle, CURLOPT_PRIVATE, $id);
Калі curl_multi_info_read() паведамляе пра завершаную перадачу, выкарыстайце вернуты дэскрыптар, каб аднавіць ідэнтыфікатар:
$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);
Трымайце запіс праграмы з ключом па гэтым ідэнтыфікатары, які змяшчае пункт прызначэння, наладжаны проксі і нумар спробы. Паўтор праз іншы проксі заслугоўвае новага запісу спробы, нават калі ён належыць да той жа агульнай задачы.
Трымайце тры выгляды адрасоў асобна
Наладжаны канчатак проксі — гэта адрас, перададзены cURL. Адрас суразмоўцы злучэння апісвае сеткавае злучэнне, якое адкрыў cURL. Выходны IP, які бачыць пункт прызначэння, — гэта інфармацыя з іншага боку. Яны могуць адрознівацца, асабліва з ланцужковымі проксі або проксі, якімі кіруе пастаўшчык.
Прыватныя метаданыя фіксуюць вашу меркаваную канфігурацыю; яны не могуць даказаць, які IP бачыў пункт прызначэння. І наадварот, адказ IP пункта прызначэння не паведамляе аўтаматычна, які дэскрыптар у вашай праграме яго стварыў.
Захоўвайце бяспечны ідэнтыфікатар проксі ў звычайных журналах. Калі поўны канчатак змяшчае ўліковыя даныя, запіс гэтага URL для кожнай няўдалай перадачы распаўсюджвае пароль па усім зборы памылак.
Гэты невялікі крок ўліку робіць змешаныя вынікі зразумелайшымі: адна задача, адна спроба, адзін выбраны проксі і адзін фактычны вынік. Ён таксама пазбягае залежнасці ад выпадковых прадстаўленняў дэскрыптара, якія змяніліся паміж cURL API на аснове рэсурсаў і аб'ектаў у PHP.