Есть ли способ выполнить запросы cURL через VPN, такие как OpenVPN или PPTP?
Я знаю, что я могу использовать прокси-сервер, но VPN отличается.
cURL просто использует сетевой стек операционной системы и не реализует TCP (или протоколы более низкого уровня).
Поэтому он отлично работает, когда операционная система настроена на маршрутизацию сетевой связи через виртуальный адаптер, независимо от того, как этот адаптер реализован.
EDIT: ИЮЛЬ 2013
Я получил несколько писем по этому поводу, поэтому я завернул все это в блог-постер: http://www.georgiecasey.com/2013/07/26/how-to-use-overplay-and-other-vpns-as- а-завиток-прокси /
Да, но сначала вы должны настроить VPN на отдельный интерфейс, чтобы весь ваш сервер не использовал VPN. Я не эксперт OpenVPN, но я сделал это с помощью dev
чтобы указать виртуальное сетевое устройство TUN / TAP: dev proxy1
. Дополнительная информация на странице руководства OpenVPN.
Затем используйте эту строку кода PHP в своих сценариях.
curl_setopt($ch, CURLOPT_INTERFACE, "proxy1");
Я сделал это, чтобы я мог использовать все IP-адреса overplay.net для очистки файлов на моем сервере. Эти IP-адреса часто меняются, поэтому у меня есть cronjob, который вытащил zip-файл IP-адресов, создал файл конфигурации OpenVPN для каждого IP-адреса, запустил каждую VPN и поместил все IP-адреса и имена интерфейсов в таблицу DB. Затем мои скрипты просто вытащили из базы данных случайные имена интерфейсов и использовали это в curl. Работал.