[英]Using proxy, using curl, working on localhost but not on server
我使用 squid 在我的一個 vps 上設置了一個代理,然后我制作了這個代理腳本,它在 wamp 和 localhost 上運行良好,但是當我將它上傳到我的服務器時它不起作用,我似乎無法弄清楚為什么。
$proxy = "xx.xx.xxx.xx:3128";
$proxy = explode(':', $proxy);
$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_USERAGENT, 'Googlebot/1.0 (googlebot@googlebot.com http://googlebot.com/)');
curl_setopt($ch, CURLOPT_ENCODING, "UTF-8" );
curl_setopt($ch, CURLOPT_REFERER, "http://tamilwin.com/");
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec ($ch);
提前致謝。
更新
我在服務器上遇到的錯誤是cURL error number:7cURL error:couldn't connect to host
我遇到了類似的問題,在本地主機上效果很好,但在我的服務器上卻不行。 我寫了一個檢測腳本,讓你知道它是否有效。
<?php
//$url = 'https://www.google.com';
// to check your proxy
$url = 'http://whatismyipaddress.com/';
$proxy = 'x.x.x.x:3128';
// create curl resource
$ch = curl_init();
// set options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true ); // read more about HTTPS http://stackoverflow.com/questions/31162706/how-to-scrape-a-ssl-or-https-url/31164409#31164409
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, file_exists('\cacert.pem'));
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, $proxy);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
// $output contains the output string
$output = curl_exec($ch);
// close curl resource to free up system resources
curl_close($ch);
//echo $output;
$check = stripos($output,'</html>');
// if there was a match in the stripos (string postion) function echo that the
//proxy got the data and works
if($check > 0)
{
echo $proxy." Works!
";
// or else echo it doesn't work
}else{
echo $proxy." Is Dead!
";
}
?>
代理主機可能無效。 試試 telnet xx.xx.xxx.xx 3128 (從你的本地電腦) 你能連接成功嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.