Выбар лакальнага інтэрфейса і проксі ў адной перадачы cURL
Выкарыстоўвайце CURLOPT_INTERFACE для лакальнай крыніцы і CURLOPT_PROXY для пасярэдніка, улічваючы маршрутызацыю АС і NAT.
Машыне з некалькімі лакальнымі адрасамі можа спатрэбіцца адзін з іх для злучэння з прамым проксі. 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 прымае імёны інтэрфейсаў на падтрымліваемых платформах, але яго дакументацыя выключае выбар імён інтэрфейсаў Windows для гэтай опцыі. Выкарыстанне імя хоста таксама можа выклікаць блакуючы пошук. Вядомы лакальны адрас — больш ясны ўвод, калі менавіта гэта мае на ўвазе праграма.