“Dapatkan proxy” boleh bermaksud tiga perkara berbeza dalam aplikasi PHP cURL. Tentukan pemerhatian mana yang anda perlukan sebelum menambah permintaan lain.

SoalanDi mana hendak dilihat
Titik akhir mana yang dikonfigurasikan oleh aplikasi?Konfigurasi yang diberikan kepada pengendali
Adakah proxy digunakan untuk pemindahan ini?Maklumat pemindahan, di mana disokong
Alamat awam mana yang dilihat oleh laman web?Pemerhatian di destinasi itu

Simpan titik akhir yang dipilih bersama pengendali atau objek permintaan. curl_getinfo ialah antara muka maklumat pemindahan, bukan pengambil umum untuk setiap nilai CURLOPT yang ditetapkan sebelum ini. Menyimpan konfigurasi aplikasi lebih mudah daripada cuba memintas panggilan curl_setopt.

Periksa pemindahan yang selesai

Selepas pemindahan, rakan yang disambungkan tersedia melalui CURLINFO_PRIMARY_IP. Apabila sambungan pertama menuju ke proxy, rakan itu boleh menjadi alamat proxy dan bukan alamat laman web.

$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
    ? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
    : null;

CURLINFO_USED_PROXY ditambah kepada libcurl pada 8.7.0 dan didedahkan oleh binaan PHP yang serasi. Hasilnya melaporkan penggunaan proxy, bukan URL penuh proxy yang dipilih. Jika pemalar tidak tersedia, null di atas bermaksud pemerhatian tidak tersedia, bukan bahawa permintaan pergi terus.

Baca nilai ini semasa pengendali masih menerangkan operasi berkenaan. Sambungan yang gagal mungkin tidak memberikan alamat rakan yang berguna, dan proxy eksplisit masih boleh dipintas oleh pengecualian yang berkenaan.

Titik akhir pemeriksaan IP menjawab soalan ketiga. Jawapannya boleh menerangkan laluan keluar di belakang proxy, manakala nama hos yang dikonfigurasikan menyelesaikan ke pintu masuk yang berbeza. Tiada satu alamat pun patut digantikan dengan yang lain dalam tetapan aplikasi.

Artikel berkaitan