Избор на локален интерфейс и прокси в едно 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 за тази опция. Използването на име на хост също може да предизвика блокиращо търсене. Известен локален адрес е по-ясен вход, когато това е изборът, който приложението има предвид.