Proxy mana yang dipakai permintaan PHP cURL ini?
Bedakan proxy yang dikonfigurasi, peer yang terhubung, dan keluar publik yang dilihat tujuan.
“Ambil proxy” bisa berarti tiga hal berbeda dalam aplikasi PHP cURL. Putuskan pengamatan mana yang Anda butuhkan sebelum menambah permintaan lain.
| Pertanyaan | Di mana melihatnya |
|---|---|
| Endpoint mana yang dikonfigurasi aplikasi? | Konfigurasi yang diberikan ke handle |
| Apakah proxy dipakai untuk transfer ini? | Informasi transfer, bila didukung |
| Alamat publik mana yang dilihat situs web? | Pengamatan di tujuan tersebut |
Simpan endpoint terpilih bersama handle atau objek permintaan. curl_getinfo adalah antarmuka informasi transfer, bukan getter umum untuk setiap nilai CURLOPT yang diberikan sebelumnya. Menyimpan konfigurasi aplikasi lebih sederhana daripada mencoba mencegat panggilan curl_setopt.
Periksa transfer yang selesai
Setelah transfer, peer yang terhubung tersedia melalui CURLINFO_PRIMARY_IP. Saat koneksi pertama menuju proxy, peer itu bisa berupa alamat proxy, bukan alamat situs web.
$peer = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$usedProxy = defined('CURLINFO_USED_PROXY')
? curl_getinfo($ch, constant('CURLINFO_USED_PROXY'))
: null;
CURLINFO_USED_PROXY ditambahkan ke libcurl pada 8.7.0 dan disediakan oleh build PHP yang kompatibel. Hasilnya melaporkan penggunaan proxy, bukan URL lengkap proxy yang dipilih. Jika konstanta tidak tersedia, null di atas berarti pengamatan tidak tersedia, bukan bahwa permintaan berjalan langsung.
Baca nilai-nilai ini selama handle masih menjelaskan operasi yang dimaksud. Koneksi yang gagal mungkin tidak memberi alamat peer yang berguna, dan proxy eksplisit masih bisa dilewati oleh pengecualian yang berlaku.
Endpoint pemeriksa IP menjawab pertanyaan ketiga. Balasannya bisa menjelaskan keluar di balik proxy, sementara nama host yang dikonfigurasi menuju ke pintu masuk yang berbeda. Tak satu pun dari kedua alamat itu boleh diganti dengan yang lain di pengaturan aplikasi.