ماشینی با چند نشانی محلی ممکن است یکی از آن‌ها را برای اتصال به یک پروکسی پیشرو لازم داشته باشد. cURL می‌تواند هر دو انتخاب را صریح انجام دهد:

curl_setopt_array($handle, [
    CURLOPT_URL => 'https://example.com/',
    CURLOPT_INTERFACE => '192.0.2.20',
    CURLOPT_PROXY => 'http://proxy.example:8080',
]);

این یک پیکربندی نمونه برای یک دستهٔ cURL موجود است. 192.0.2.20 را با نشانی مبدأیی جایگزین کنید که واقعاً روی ماشین اجراکنندهٔ PHP در دسترس است. برای یک درخواست عمومی مجاز بدون حساب پروکسی، فهرست پروکسی‌های HTTP می‌تواند شنوندهٔ راه دور را برای مقدار پروکسی فراهم کند.

CURLOPT_INTERFACE سمت محلی اتصال خروجی را انتخاب می‌کند. CURLOPT_PROXY واسطه‌ای را انتخاب می‌کند که درخواست را به جلو می‌برد. انتخاب یک مبدأ محلی آن ماشین را به پروکسی راه دور تبدیل نمی‌کند و به آن IP عمومی دلخواه نمی‌دهد.

در این مسیر، انتخاب محلی بر اتصال به سمت پروکسی اثر می‌گذارد. وب‌سایت عموماً نشانی مبدأ بعدی پروکسی را می‌بیند. NAT بین هر یک از دو جفت می‌تواند نشانی‌ای را که هر دریافت‌کننده می‌بیند بیشتر ترجمه کند.

اگر انتخاب رابط حذف شود، libcurl به پشتهٔ TCP اجازه می‌دهد مبدأ مناسبی را انتخاب کند. آن انتخاب از پیکربندی شبکهٔ ماشین پیروی می‌کند؛ این یک قاعدهٔ جهانی نیست که اولین نشانی در یک فایل پیکربندی برنده شود.

libcurl نام رابط‌ها را در سکوهای پشتیبانی‌شده می‌پذیرد، اما مستندات آن انتخاب نام رابط‌های ویندوز را برای این گزینه کنار می‌گذارد. استفاده از نام میزبان نیز می‌تواند یک جستجوی مسدودکننده را آغاز کند. یک نشانی محلی شناخته‌شده ورودی روشن‌تری است وقتی که همان انتخاب مورد نظر برنامه باشد.

مقالات مرتبط