Välj ett lokalt gränssnitt och en proxy i samma cURL-överföring
Använd CURLOPT_INTERFACE för den lokala källan och CURLOPT_PROXY för mellanledet, med hänsyn till OS-routing och NAT.
En maskin med flera lokala adresser kan behöva en av dem för anslutningen till en vidarebefordrande proxy. cURL kan göra båda valen explicit:
curl_setopt_array($handle, [
CURLOPT_URL => 'https://example.com/',
CURLOPT_INTERFACE => '192.0.2.20',
CURLOPT_PROXY => 'http://proxy.example:8080',
]);
Detta är en illustrativ konfiguration för ett befintligt cURL-handtag. Ersätt 192.0.2.20 med en källadress som faktiskt är tillgänglig på maskinen som kör PHP. För en tillåten offentlig begäran utan proxykonto kan HTTP-proxylistan tillhandahålla den fjärrlyssnare som proxyvärdet behöver.
CURLOPT_INTERFACE väljer den lokala sidan av den utgående anslutningen. CURLOPT_PROXY väljer mellanledet som bär begäran vidare. Att välja en lokal källa gör inte maskinen till en fjärrproxy och ger den ingen godtycklig offentlig IP.
På den här vägen påverkar det lokala valet anslutningen mot proxyn. Webbplatsen ser vanligtvis proxyns vidare källadress. NAT mellan vilket par som helst kan ytterligare översätta adressen varje mottagare ser.
Om gränssnittsvalet utelämnas låter libcurl TCP-stacken välja en lämplig källa. Det valet följer maskinens nätverkskonfiguration; det är ingen universell regel att den första adressen i en konfigurationsfil vinner.
libcurl accepterar gränssnittsnamn på plattformar som stöds, men dokumentationen utesluter Windows-gränssnittsnamn för det här alternativet. Att använda ett värdnamn kan också utlösa en blockerande uppslagning. En känd lokal adress är en tydligare indata när det är valet programmet avser.