Vietējās saskarnes un starpniekservera izvēle vienā cURL pārsūtīšanā
Izmantojiet CURLOPT_INTERFACE vietējam avotam un CURLOPT_PROXY starpniekam, ņemot vērā OS maršrutēšanu un NAT.
Datoram ar vairākām vietējām adresēm var būt vajadzīga viena no tām savienojumam ar starpniekserveri. cURL var skaidri izdarīt abas izvēles:
curl_setopt_array($handle, [
CURLOPT_URL => 'https://example.com/',
CURLOPT_INTERFACE => '192.0.2.20',
CURLOPT_PROXY => 'http://proxy.example:8080',
]);
Šī ir ilustratīva konfigurācija esošam cURL handle. Aizstājiet 192.0.2.20 ar avota adresi, kas patiešām ir pieejama mašīnā, kurā darbojas PHP. Ja atļautais publiskais pieprasījums tiek veikts bez starpniekservera konta, HTTP starpniekserveru saraksts var nodrošināt attālināto klausītāju starpniekservera vērtībai.
CURLOPT_INTERFACE izvēlas izejošā savienojuma vietējo pusi. CURLOPT_PROXY izvēlas starpnieku, kas pārsūta pieprasījumu tālāk. Vietējā avota izvēle nepārvērš šo mašīnu par attālinātu starpniekserveri un nedod tai patvaļīgu publisku IP.
Šajā ceļā vietējā izvēle ietekmē savienojumu uz starpniekserveri. Vietne parasti redz starpniekservera tālāko avota adresi. NAT starp jebkuru pāri var tālāk pārveidot adresi, ko redz katrs saņēmējs.
Ja saskarnes izvēle ir izlaista, libcurl ļauj TCP stekam izvēlēties piemērotu avotu. Šī izvēle seko mašīnas tīkla konfigurācijai; tas nav vispārējs noteikums, ka uzvar pirmā adrese konfigurācijas failā.
libcurl pieņem saskarnes nosaukumus atbalstītajās platformās, taču tā dokumentācija izslēdz Windows saskarnes nosaukuma izvēli šai opcijai. Hostname izmantošana var arī izraisīt bloķējošu uzmeklēšanu. Zināma vietējā adrese ir skaidrāka ievade, ja tā ir izvēle, ko lietotne paredzējusi.