CURLOPT_PROXYPORT เพิ่มอะไรให้กับการตั้งค่า proxy ของ cURL
เข้าใจตัวเลือกพอร์ตพร็อกซีแยก ความสำคัญเหนือพอร์ตใน CURLOPT_PROXY และเหตุใด endpoint ยังต้องมี host
CURLOPT_PROXYPORT ให้หมายเลขพอร์ต มันไม่ได้ระบุ host ของพร็อกซี ไม่ได้เลือกโปรโตคอล และไม่ได้สร้าง listener บนเครื่องท้องถิ่น
การกำหนดค่า PHP cURL ใหม่จะอ่านง่ายขึ้นเมื่อเก็บ endpoint ทั้งหมดไว้ด้วยกัน:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:3128');
เอกสารของ libcurl ไม่แนะนำให้ใช้ตัวเลือกพอร์ตแยก โค้ดที่มีอยู่ยังใช้มันกับ host ที่ไม่มีพอร์ตฝังอยู่ได้:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example');
curl_setopt($handle, CURLOPT_PROXYPORT, 3128);
พอร์ตที่ระบุไว้อย่างชัดเจนในสตริงพร็อกซีมีความสำคัญเหนือตัวเลือกแยก หลีกเลี่ยงการดูแลตัวเลขสองตัวที่ขัดแย้งกัน
หากใน fragment ปรากฏเฉพาะ CURLOPT_PROXYPORT ให้ตรวจสอบส่วนที่เหลือของการกำหนดค่า handle และสภาพแวดล้อมที่เกี่ยวข้อง fragment เดียวไม่สามารถเปิดเผยว่า libcurl จะใช้พร็อกซี host ใด (ถ้ามี)
พอร์ต 3128 เป็นตัวเลือกการติดตั้งที่คุ้นเคย ไม่ใช่ตัวตรวจจับโปรโตคอล ใช้โปรโตคอลและพอร์ตจริงของ listener สำหรับเส้นทาง HTTP สาธารณะ รายการพร็อกซี HTTP มีผู้สมัครที่อยู่และพอร์ตให้เก็บไว้ด้วยกันใน URL ของพร็อกซี พร็อกซีที่เข้าถึงได้บนพอร์ตอื่นไม่จำเป็นต้องย้ายเพียงเพื่อให้ตรงกับตัวอย่าง