عند اختيار معالج عميل Guzzle عن قصد، يمكن لحزمة معتمدة على cURL استخدام SOCKS:

$stack = \GuzzleHttp\HandlerStack::create(
    new \GuzzleHttp\Handler\CurlHandler()
);

$client = new \GuzzleHttp\Client([
    'handler' => $stack,
    'proxy' => 'socks5h://proxy.example.net:1080',
]);

يطلب socks5h من الوكيل تحليل اسم الوجهة. يمرّر Guzzle نقطة النهاية إلى libcurl، لذا يجب أن تدعم نسخة libcurl المحمّلة ذلك البروتوكول. وتوفّر قائمة وكلاء SOCKS5 نقاط نهاية عامة مرشّحة لعنوان URL الخاص بوكيل العميل.

إذا كان التطبيق يملك حزمة معالجات بالفعل، فافحص الناقل الأساسي قبل استبدالها وفقدان الوسائط البرمجية. إن المعالج المقتصر على تدفقات HTTP في PHP لا يستطيع تنفيذ SOCKS لمجرد أن العميل يتلقى هذا الخيار.

افحص العملية التي تنفّذ الطلب. يمكن أن تحمّل CLI PHP وPHP-FPM ملفات تهيئة وإضافات مختلفة؛ فظهور cURL في إحداهما لا يثبت توفّره في الأخرى.

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