Escoller unha interface local e un proxy na mesma transferencia cURL
Use CURLOPT_INTERFACE para a orixe local e CURLOPT_PROXY para o intermediario, tendo en conta o encamiñamento do sistema e o NAT.
Unha máquina con varias direccións locais pode necesitar unha delas para a súa conexión a un proxy de reenvío. cURL pode facer ambas as eleccións de forma explícita:
curl_setopt_array($handle, [
CURLOPT_URL => 'https://example.com/',
CURLOPT_INTERFACE => '192.0.2.20',
CURLOPT_PROXY => 'http://proxy.example:8080',
]);
Esta é unha configuración ilustrativa para un identificador cURL existente. Substitua 192.0.2.20 por unha dirección de orixe realmente dispoñible na máquina que executa PHP. Para unha solicitude pública permitida sen conta de proxy, a lista de proxys HTTP pode fornecer o oínte remoto para o valor do proxy.
CURLOPT_INTERFACE selecciona o lado local da conexión saínte. CURLOPT_PROXY selecciona o intermediario que leva a solicitude adiante. Escoller unha orixe local non converte a máquina nun proxy remoto nin lle dá un IP público arbitrario.
Neste camiño, a selección local afecta a conexión cara ao proxy. O sitio web normalmente ve a seguinte dirección de orixe do proxy. O NAT entre calquera dos dous pares pode traducir aínda máis a dirección que ve cada receptor.
Se se omite a selección de interface, libcurl deixa que a pila TCP escolla unha orixe axeitada. Ese elección segue a configuración de rede da máquina; non é unha regra universal que gañe a primeira dirección dun ficheiro de configuración.
libcurl acepta nomes de interface nas plataformas compatibles, pero a súa documentación exclúe a selección de nomes de interface de Windows para esta opción. Usar un nome de host tamén pode desencadear unha busca bloqueante. Unha dirección local coñecida é unha entrada máis clara cando esa é a elección que pretende a aplicación.