Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Curl, a ban na IP
in5ane
post
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 18:49