php-скрипт, запрашивающий страницу с сайта (file_get_contents) приходит на этот сайт, имея IP-адрес выделенного виртуального сервера, на котором запускается. С помощью cURL можно назначить адрес proxy-сервера. Это понятно. Но надо запустить такой скрипт <?php $exec = shell_exec('/usr/local/bin/phantomjs script.js'); ?> Он тоже получает страницу, но с помощью phantomjs, поэтому cURL не подходит... Как можно вызвать этот скрипт (назовём его get.php) так, чтобы он имел для сайта ДРУГОЙ IP-адрес, не свой? Спасибо за любые мнения, намёки, рассуждения! P.S. опция phantomjs --proxy=xxx.xxx.xxx.xxx:xxxx - НЕ работает в моём случае :-((((((((((
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о phantomjs запускается в системе, это отдельный процесс, сетевые параметры, установленные в php-скрипте на него никак не влияют. Есть два пути: 1) разобраться с --proxy. Возможно, phantomjs не поддерживает socks-прокси, а только HTTP, или наоборот, или поддерживает только socks 4, короче возможно ты ему даешь неподходящую прокси 2) настроить соединение через прокси глобально, на всем сервере (нужен root на сервере)
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о Спасибо за ответы! MAN_IFE_ST, поясните, пожалуйста, немного, как именно в этом случае использовать функцию include или require function curl_get_contents($url) { $page = ""; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_NOPROGRESS, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_PROXY, '120.197.85.181:80'); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; YandexImageResizer/2.0)'); $page = curl_exec($ch); curl_close($ch); return $page; } echo curl_get_contents("http://2ip.ru"); // Показывает адрес прокси - всё правильно А куда добавить include - не пойму... Добавлено спустя 22 минуты 33 секунды: Re: Как запустить php-скрипт от другого IP-адреса (не cURL'ом)? Уважаемый [vs], Вы правы, прокси-сервера почти не работают. Перепробовали десятки и http, и socks серверов ( у phantomjs есть опция --proxy-type=[http|socks5|none] ), еле-еле найдётся хоть один сервер, который получит эту несчастную страничку - но потом второй раз - уже нет! В чём дело - непонятно - или в phantomjs или в настройках выделенного сервера Подскажите, пожалуйста, если всё это хозяйство находится и запускается на выделенном виртуальном сервере (хостинг 1Gb.ru) root на сервере есть, установим proxy-сервер, например, Squid, где и что потом прописать, чтобы все запускаемые на этом выделенном сервере php-скрипты имели новый прокси IP-адрес? Спасибо!
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о Прокси, установленный на том же сервере, будет иметь тот же адрес ) Я имею ввиду, что после того, как ты нашел рабочий прокси-сервер, можно настроить чтобы все соединения сервера с интернетом были через него мб работает 92.224.5.23:46271 это сокс 5
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о Спасибо огромное! в /root/.bashrc добавлено в конец: export http_proxy='http://120.197.85.181:80/' export ftp_proxy='http://120.197.85.181:80/' Apache перезагружен Простой скрипт <?php echo file_get_contents("http://2ip.ru"); ?> выводит СТАРЫЙ IP-адрес :-(((( Что не так? С большим уважением, Анна.
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о А никто не просил использовать проксик, поэтому пошел напрямую.
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о А как "попросить"? Мне казалось, что если "Чтобы не указывать настрой прокси в каждой отдельной программе, можно задать соответствующие переменные среды окружения." - то тогда все выходы в интернет будут через прокси...
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о возможно нужно перезапустить сетевые службы. В консоли: Код (Text): sudo service networking stop sudo service networking start или вообще сервер =) Код (Text): sudo reboot now это всё для Ubuntu.
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о На форуме ubuntu мне посоветовали /etc/environment ftp_proxy=http://proxy.example.org:3128/ FTP_PROXY=http://proxy.example.org:3128/ http_proxy=http://proxy.example.org:3128/ HTTP_PROXY=http://proxy.example.org:3128/ https_proxy=http://proxy.example.org:3128/ HTTPS_PROXY=http://proxy.example.org:3128/ no_proxy='localhost,127.0.0.0/8,::1,*.example.org' NO_PROXY='localhost,127.0.0.0/8,::1,*.example.org' Сделали (с кавычками и без), но скрипт запускается всё так же от основного IP-адреса выделенного сервера... Что же можно ещё придумать? Добавлено спустя 40 секунд: Re: Как запустить php-скрипт от другого IP-адреса (не cURL'ом)? Да, выделенный сервер, конечно, перезагрузили после этого
Re: Как запустить php-скрипт от другого IP-адреса (не cURL'о Можно еще придумать попробовать поиспользовать mod_proxy для апачу. Код (Text): ProxyRemote http://host:port ProxyRemote * http://host ProxyRemote ftp http://host:port