ในแอปพลิเคชัน 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 ตอบคำถามข้อที่สาม. คำตอบอาจอธิบายทางออกที่อยู่หลังพร็อกซี ขณะที่ชื่อโฮสต์ที่กำหนดค่าไว้แก้ไขไปยังทางเข้าอื่น ไม่ควรแทนที่ที่อยู่หนึ่งด้วยอีกที่อยู่ในตั้งค่าของแอปพลิเคชัน

บทความที่เกี่ยวข้อง