Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cURL i proxy
Forum PHP.pl > Forum > PHP
312
Witam próbuję połączyć się z cURL poprzez serwer proxy, czy ktoś wie co jest nie tak z tym skryptem? pokazuje tylko pustą stronę.
  1. <?
  2. $ch = curl_init();
  3. $adres = "http://www.amazon.com";
  4. $proxy = "85.128.187.18";
  5. $port ="80";
  6.  
  7. curl_setopt($ch, CURLOPT_URL, $adres);
  8. curl_setopt($ch, CURLOPT_PROXY, $proxy);
  9. curl_setopt($ch, CURLOPT_PROXYPORT, $port);
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  11. curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
  12. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  13.  
  14.  
  15.  
  16. curl_exec($ch);
  17. curl_close($ch);
  18.  
  19. ?>
radmistrz2
heh a może serwer proxy nie działa

Jak nie to http://forum.php.pl/index.php?showtopic=93...=0&p=466992
312
a jak można sprawdzić czy działa?
ten temat w wyszukiwarce znalazłem co podałeś ale u mnie nie chciało działać. sprawdzałem z paroma różnymi adresami
radmistrz2
aby sprawdzić czy działa to skonfiguruj swoją przeglądarkę i sprawdź na jakiejś stronie twoje IP.
312
heh, dzięki faktycznie to tylko padnięte proxy było, wszystko jest w porządku.

i znowu mam problem: otóż próbuję pobrać listę bramek proxy z pliku tekstowego a potem połączyć się z daną stroną...
jednak efekt ciągle jest daleki od zamierzonego...

  1. <?
  2.  $plik= file('proxy.txt');
  3.  $ile = count($plik);
  4.  for ($i = 0; $i < $ile; $i++) {
  5.  
  6. $data = $plik[$i];
  7. list($proxy, $port) = explode(":", $data);
  8. echo $proxy;
  9. echo ":";
  10. echo $port;
  11. $ch = curl_init();
  12. $adres = "http://mojeip.org";
  13.  
  14.  
  15. curl_setopt($ch, CURLOPT_URL, $adres);
  16. curl_setopt($ch, CURLOPT_PROXY, $proxy);
  17. curl_setopt($ch, CURLOPT_PROXYPORT, $port);
  18. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  19.  
  20. curl_exec($ch);
  21. curl_close($ch);
  22.  
  23. }
  24. ?>


w pliku txt mam adresy serwerów proxy oddzielane enterami (pierwszy działa na pewno) np:
128.192.101.217:3128
80.45.9.149:3128
80.52.150.26:8080
80.54.34.131:3128
nowotny
Cytat(312 @ 23.07.2008, 12:12:21 ) *
jednak efekt ciągle jest daleki od zamierzonego...

Czyli jaki...? :/

Cytat(312 @ 23.07.2008, 12:12:21 ) *
  1. <?php
  2.  $plik= file('proxy.txt');
  3. ?>

file" title="Zobacz w manualu PHP" target="_manual ładuje tekst razem z nowymi liniami na końcu każdego wiersza... musisz dodatkowo jeszcze trim" title="Zobacz w manualu PHP" target="_manualnąć każdą linię...
radmistrz2
albo $plik= elplode(file('proxy.txt'), '/n');

i masz tablicę.
(nie wiem czy czegoś nie pomieszałem)
312
używając do tej pory kodu który wkleiłem powyżej zwracała mi ona takie parametry po wyciągnięciu z pliku:
Cytat
128.192.101.217:3128 127.0.0.1:8080

w pliku zaś wpisałem te same wartości tyle, że po Enterze. czyli pobrać pobrało ale dwie naraz, no to lecę z trimem:
  1. <?
  2.  $plik= file('proxy.txt');
  3.  
  4.  $ile = count($plik);
  5.  var_dump($trimmed);
  6.  for ($i = 0; $i < $ile; $i++) {
  7.  $trimmed = trim($plik, \n.");
  8. $data = $trimmed[$i];
  9. list($proxy, $port) = explode(":", $data);
  10.  
  11. echo $proxy;
  12. echo ":";
  13. echo $port;
  14.  
  15.  
  16. $ch = curl_init();
  17. $adres = "http://mojeip.org";
  18.  
  19.  
  20. curl_setopt($ch, CURLOPT_URL, $adres);
  21. curl_setopt($ch, CURLOPT_PROXY, $proxy);
  22. curl_setopt($ch, CURLOPT_PROXYPORT, $port);
  23. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  24.  
  25. curl_exec($ch);
  26. curl_close($ch);
  27.  
  28. }
  29. ?>

jednak jedyne co mi wyświetlił pomijając oczywiście curl-a to:
Cytat
NULL A:r:
czyli pewnie źle zrozumiałem manuala, idę jeszcze go pomęczę.

ok już działa (chyba- w fazie testowania ostatecznego):
  1. <?
  2.  $plik= file('proxy.txt');
  3.  
  4.  $ile = count($plik);
  5.  echo "<pre>";print_r($plik);echo "</pre>";
  6. //
  7.  //for ($i = 0; $i < $ile; $i++) {
  8.  foreach ($plik as $k=>$v) {
  9. $trimmed = trim($v);
  10. //echo $k." ".$v;
  11. list($proxy, $port) = explode(":", $v);
  12. echo $proxy;
  13. echo ":";
  14. echo $port."<br>";
  15. $ch = curl_init();
  16. $adres = "http://mojeip.org";
  17.  
  18. curl_setopt($ch, CURLOPT_URL, $adres);
  19. curl_setopt($ch, CURLOPT_PROXY, $proxy);
  20. curl_setopt($ch, CURLOPT_PROXYPORT, $port);
  21. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  22.  
  23. curl_exec($ch);
  24. curl_close($ch);
  25.  
  26. }
  27. //$data = $trimmed;
  28. //var_dump($trimmed);
  29. //}
  30. ?>


trochę zmieniony kod. i btw: czy można jakoś ustawić szybki timeout w curlu by się rozłączało szybko jak nie uda się połączyć z serwerem?
nowotny
curl_setopt" title="Zobacz w manualu PHP" target="_manual <- poszukaj sobie... winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.