SORU
6 Mart 2011, Pazar


Nasıl bir proxy üzerinden CURL kullanmak için?

Bir proxy sunucusu kullanmak için curl ayarlamak için arıyorum. Url bir sorunu olan bir html Formu tarafından sağlanır. Proxy olmadan gayet iyi çalışıyor. Bu ve diğer sitelerde kod buldum ama çalışmıyor. Doğru çözüm bulma konusunda herhangi bir yardım çok mutluluk duyacağız. Bu feryat yakın, ama bir şeyler eksik gibi hissediyorum. Teşekkür Ederim.

Burada http://www.webmasterworld.com/forum88/10572.htm uyarladım ancak 12 kayıp T_VARİABLE ilgili bir hata iletisi döndürür kodu feryat.

<?

$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);
?>

Bellow curl through proxy returns no content

<?

$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;
?>

şu anda pelican-cement.com canlı da çalışmıyor.

GÜNCELLEME: Tüm yardımlarınız için teşekkür ederim, yukarıdaki değişiklikleri yaptım. Şimdi sadece boş bir ekran verir.

<?

$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;
?> 

@Pekka @yoavmatchulsky @MT

CEVAP
12 ŞUBAT 2012, Pazar


Burada hata ile çalışan bir sürümünü çıkardı.

$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;

Vekaletnameler herhangi bir kullanıcı adı ve parola gerektiren durumlarda CURLOPT_PROXYUSERPWD ekledik. 1, veri $curl_scraped_page iade edilecektir o kadar değişken CURLOPT_RETURNTRANSFER kurdum.

Değişken döndürülen keser curl_exec($ch); Bir saniye fazladan kaldırıldı. Bir ayar içine proxy IP ve port birleştirdim.

Ben de varsayılan olarak CURLOPT_HTTPPROXYTUNNEL CURLOPT_CUSTOMREQUEST kaldırıldı.

Eğer başlıklarını geri istemiyorsun. öyleyse CURLOPT_HEADER yorum.

Devre dışı bırakmak için proxy sadece null olarak ayarlayın.

curl_setopt($ch, CURLOPT_PROXY, null);

Herhangi bir soru sormaya çekinmeyin, cURL Her gün çalışıyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • erikbjgn's channel

    erikbjgn's c

    12 Mayıs 2008
  • EvilControllers

    EvilControll

    20 Ocak 2008
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008