Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Curl, a ban na IP
Forum PHP.pl > Forum > Przedszkole
in5ane
Cześć. Mam pytanie, w jakis sposób zrobić, żeby połączenia przez CURL nie wygenerowały mi na serwerze bana na adres IP? Muszę sprawdzać stany magazynowe na jednej ze stron, ale obawiam się, że będzie zbyt dużo połączeń i dostanę bana. Macie jakieś pomysły?
pitu
Użyć proxy?
ActivePlayer
Najlepiej będzie użyć proxy. Musisz jednak zwrócić uwagę żeby były to proxy anonimowe. Listę proxy możesz znaleźc w internecie albo kupić np http://proxylive.pl/ albo na http://proxymarket.pl
ctom
to nie łatwiej napisać do ich admina z jakiego IP będziesz wykonywał zapytania - zakładam, że wasze strony (aplikacje) są jakoś współzależne biznesowo

no chyba, że nie sprawdzasz a skanujesz ich strony ;-)
Pyton_000
Swego czasu napisałem bardzo prostą metodę która z listy dostępnych adresów IP proxy sprawdzała czas odp. i zwracała listę aktywnych adresów posortowaną od najszybszych.

  1. /**
  2. * Metoda zwracająca teoretycznie najszybsze proxy z dostępnej listy
  3. *
  4. * @return array Posortowana tablica proxy wg. czasów odpowiedzi.
  5. */
  6. private function __getProxy() {
  7. $proxy = array(
  8. '189.112.3.87:3128',
  9. '189.112.3.86:3128',
  10. '216.218.133.217:80',
  11. '85.114.141.191:80',
  12. '211.155.81.99:80',
  13. '61.144.14.99:80',
  14. '118.195.65.247:80',
  15. '184.169.162.184:80',
  16. '217.74.174.243:3128',
  17. '103.31.0.245:8080'
  18. );
  19.  
  20. $checkedProxy = array();
  21. foreach ($proxy as &$val) {
  22. echo "Proxy: {$val} - ";
  23. $val = explode(':', $val);
  24.  
  25. $time_start = microtime(true);
  26. $fp = @fsockopen($val[0], $val[1], $errno, $errstr, 5);
  27. $time_end = microtime(true);
  28. $time = $time_end - $time_start;
  29. echo "time: {$time}\n";
  30.  
  31. if(!$fp) {
  32. unset($val);
  33. continue;
  34. }
  35.  
  36. $checkedProxy[round($time, 5)*1000000] = implode($val, ':');
  37.  
  38. }
  39. ksort($checkedProxy);
  40.  
  41. $checkedProxy = array_values($checkedProxy);
  42.  
  43. return $checkedProxy;
  44. }
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.