قد يعني “احصل على الوكيل” ثلاثة أشياء مختلفة في تطبيق PHP cURL. حدّد الملاحظة التي تحتاجها قبل إضافة طلب آخر.

السؤالأين تبحث
أي نقطة نهاية هيأها التطبيق؟التهيئة المعطاة للمقبض
هل استُخدم وكيل لهذا النقل؟معلومات النقل، حيث تكون مدعومة
أي عنوان عام رأته صفحة الويب؟ملاحظة عند تلك الجهة المقصودة

احفظ نقطة النهاية المختارة إلى جانب المقبض أو كائن الطلب. إن curl_getinfo واجهة لمعلومات النقل، وليس دالة عامة لكل قيمة CURLOPT سبق تعيينها. والاحتفاظ بتهيئة التطبيق أبسط من محاولة اعتراض نداءات curl_setopt.

افحص النقل المكتمل

بعد النقل، يتاح القرين المتصل عبر CURLINFO_PRIMARY_IP. وعندما يذهب الاتصال الأول إلى وكيل، فقد يكون ذلك القرين عنوان الوكيل بدلًا من عنوان الموقع.

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

أُضيف CURLINFO_USED_PROXY إلى libcurl في 8.7.0 وتوفره نسخ PHP المتوافقة. وتفيد نتيجته باستخدام وكيل، لا بعنوان URL الكامل للوكيل المختار. وإذا لم يكن الثابت متاحًا، فالقيمة null أعلاه تعني أن الملاحظة غير متاحة، لا أن الطلب مضى مباشرة.

اقرأ هذه القيم ما دام المقبض يصف العملية المعنية. فقد لا يعطي اتصال فاشل عنوان قرين مفيدًا، ويمكن تجاوز وكيل صريح عبر استثناء منطبق.

نقطة نهاية لفحص عنوان IP تجيب السؤال الثالث. فقد يصف ردها مخرجًا خلف الوكيل، بينما يُحل اسم المضيف المهيأ إلى مدخل مختلف. ولا ينبغي استبدال أحد العنوانين بالآخر في إعدادات التطبيق.

مقالات ذات صلة