Kompiuteriui su keliais vietiniais adresais gali prireikti vieno iš jų ryšiui su išankstiniu tarpiniu serveriu. cURL gali aiškiai atlikti abu pasirinkimus:

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

Tai iliustracinė konfigūracija esamam cURL handle. Pakeiskite 192.0.2.20 šaltinio adresu, kuris tikrai yra PHP vykdančioje mašinoje. Jei vieša užklausa leidžiama be tarpinio serverio paskyros, HTTP tarpinių serverių sąrašas gali suteikti nuotolinį klausytoją tarpinio serverio reikšmei.

CURLOPT_INTERFACE parenka vietinę išeinančio ryšio pusę. CURLOPT_PROXY parenka tarpininką, kuris perduoda užklausą toliau. Vietinio šaltinio pasirinkimas nepaverčia tos mašinos nuotoliniu tarpiniu serveriu ir nesuteikia jai savavališko viešo IP.

Šiame kelyje vietinis pasirinkimas veikia ryšį link tarpinio serverio. Svetainė paprastai mato tarpinio serverio tolesnį šaltinio adresą. NAT tarp bet kurios poros gali toliau keisti adresą, kurį mato kiekvienas gavėjas.

Jei sąsajos pasirinkimas praleistas, libcurl leidžia TCP dėklui pasirinkti tinkamą šaltinį. Šis pasirinkimas priklauso nuo mašinos tinklo konfigūracijos; tai nėra visuotinė taisyklė, kad laimi pirmasis konfigūracijos failo adresas.

libcurl priima sąsajų pavadinimus palaikomose platformose, tačiau jo dokumentacija neleidžia Windows sąsajos pavadinimo pasirinkimo šiai parinkčiai. Pavadinimo (hostname) naudojimas taip pat gali sukelti blokuojančią užklausą. Žinomas vietinis adresas yra aiškesnė įvestis, kai programėlė to ir nori.

Susiję straipsniai