Pemindahan multi-cURL selesai mengikut urutan masing-masing. Jika anda memberikan proxy berbeza kepada setiap handle, hasil pertama yang selesai tidak semestinya milik proxy pertama dalam senarai input anda.

Lampirkan pengecam pemindahan yang stabil semasa mengkonfigurasi setiap handle. Jika anda menguji titik akhir awam yang boleh dipilih, senarai proxy HTTP menyediakan calon HTTP. PHP mendedahkan mekanisme data peribadi libcurl:

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

Apabila curl_multi_info_read() melaporkan pemindahan yang selesai, gunakan handle yang dikembalikan untuk mendapatkan semula pengecam:

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

Simpan rekod aplikasi yang dikunci oleh pengecam itu yang mengandungi destinasi, proxy yang dikonfigurasikan dan nombor cubaan. Cubaan semula melalui proxy lain wajar mendapat rekod cubaan baharu, walaupun ia tergolong dalam kerja keseluruhan yang sama.

Asingkan tiga jenis alamat

Titik akhir proxy yang dikonfigurasikan ialah alamat yang diberikan kepada cURL. Alamat rakan sebaya sambungan menerangkan sambungan rangkaian yang dibuka oleh cURL. IP keluar yang diperhatikan oleh destinasi ialah maklumat yang dilaporkan dari sisi lain. Ia boleh berbeza, terutamanya dengan proxy berantai atau yang diuruskan oleh pembekal.

Metadata peribadi merekodkan konfigurasi yang anda niatkan; ia tidak boleh membuktikan IP mana yang diperhatikan oleh destinasi. Sebaliknya, respons IP destinasi tidak memberitahu anda secara automatik handle mana dalam program anda yang menghasilkannya.

Simpan pengecam proxy yang selamat dalam log rutin. Jika titik akhir penuh mengandungi kelayakan, merekod URL itu bagi setiap pemindahan yang gagal menyebarkan kata laluan ke seluruh koleksi ralat anda.

Langkah perakaunan kecil ini menjadikan hasil bercampur lebih mudah dibaca: satu kerja, satu cubaan, satu proxy terpilih dan satu hasil sebenar. Ia juga mengelakkan pergantungan pada representasi handle kebetulan yang berubah antara API cURL PHP berasaskan sumber dan berasaskan objek.

Artikel berkaitan