如何通过代理使用卷曲?

问题描述 投票:0回答:3
,但它返回了有关第12行中缺少t_varible的错误消息。

<? $url = '$_POST[1]'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0); curl_setopt($ch, CURLOPT_PROXY, '66.96.200.39:80'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET'); curl_setopt ($ch, CURLOPT_HEADER, 1) curl_exec ($ch); $curl_info = curl_getinfo($ch); curl_close($ch); echo '<br />'; print_r($curl_info); ?>

波纹管来自Curl到代理返回无内容 <? $proxy = "66.96.200.39:80"; $proxy = explode(':', $proxy); $url = "$_POST[1]"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_PROXY, $proxy[0]); curl_setopt($ch, CURLOPT_PROXYPORT, $proxy[1]); curl_setopt($ch, CURLOPT_HEADER, 1); $exec = curl_exec($ch); echo curl_error($ch); print_r(curl_getinfo($ch)); echo $exec; ?>

目前居住在pelican-cement.com上,但也不起作用。

update: 感谢您的所有帮助,我进行了上述更改。现在它只返回空白屏幕。

<? $url = $_POST['1']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0); curl_setopt($ch, CURLOPT_PROXY, '66.96.200.39:80'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET'); curl_setopt ($ch, CURLOPT_HEADER, 1); curl_exec ($ch); $curl_scraped_page = curl_exec($ch); curl_close($ch); echo $curl_scraped_page; ?>

here是一个工作版本,已删除错误。

$url = 'http://dynupdate.no-ip.com/ip.php'; $proxy = '127.0.0.1:8888'; //$proxyauth = 'user:password'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_PROXY, $proxy); //curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); $curl_scraped_page = curl_exec($ch); curl_close($ch); echo $curl_scraped_page;

我添加了

CURLOPT_PROXYUSERPWD

如果您的任何代理都需要用户名和密码。 我将
CURLOPT_RETURNTRANSFER
设置为1,以便将数据返回到
php curl proxy php-curl
3个回答
249
投票
变量。

I删除了第二个额外的

curl_exec($ch);
,这将阻止返回的变量。
我将您的代理IP和端口合并为一个设置。

I还删除了

CURLOPT_HTTPPROXYTUNNEL

CURLOPT_CUSTOMREQUEST
默认值。

如果您不想返回标题,请发表评论
CURLOPT_HEADER

禁用代理只需将其设置为null。

curl_setopt($ch, CURLOPT_PROXY, null);

任何问题都可以问,我每天都在与

cURL

一起工作。


我解释了使用卷曲代理所需的各种卷曲选项的使用。

$url = 'http://dynupdate.no-ip.com/ip.php'; $proxy = '127.0.0.1:8888'; $proxyauth = 'user:password'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); // URL for CURL call curl_setopt($ch, CURLOPT_PROXY, $proxy); // PROXY details with port curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth); // Use if proxy have username and password curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); // If expected to call with specific PROXY type curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // If url has redirects then go to the final redirected URL. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); // Do not outputting it out directly on screen. curl_setopt($ch, CURLOPT_HEADER, 1); // If you want Header information of response else make 0 $curl_scraped_page = curl_exec($ch); curl_close($ch); echo $curl_scraped_page;

root@applicatioserver:/var/www/html#php connectiontest.php
61E23468-949E-4103-8E08-9DB09249E8S1 OPENSSL SSL_CONNECT:SSL_ERROR_SYSCALL连接到10.172.123.1:80

post在PHP脚本文件问题中声明代理设置已解决。

$ proxy = '10 .172.123.1:80'; curl_setopt($ csession,curlopt_proxy,$ proxy); //端口的代理详细信息
    

Missing semicolon so code is here..
<?
$url = '$_POST[1]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXY, '66.96.200.39:80');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt ($ch, CURLOPT_HEADER, 1); **semicolon**
curl_exec ($ch); 
$curl_info = curl_getinfo($ch);
curl_close($ch);
print_r($curl_info);
?>


43
投票
这里是一个经过良好测试的功能,我将其用于项目,并带有详细的自我解释评论

有很多次,当80以外的端口被服务器防火墙阻止,因此代码似乎在Local主机上工作正常,但在服务器上不正常。

function get_page($url){ global $proxy; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //curl_setopt($ch, CURLOPT_PROXY, $proxy); curl_setopt($ch, CURLOPT_HEADER, 0); // return headers 0 no 1 yes curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return page 1:yes curl_setopt($ch, CURLOPT_TIMEOUT, 200); // http request timeout 20 seconds curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Follow redirects, need this if the url changes curl_setopt($ch, CURLOPT_MAXREDIRS, 2); //if http server gives redirection responce curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt"); // cookies storage / here the changes have been made curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // false for https curl_setopt($ch, CURLOPT_ENCODING, "gzip"); // the page encoding $data = curl_exec($ch); // execute the http request curl_close($ch); // close the connection return $data; }

1
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.