Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Curl + 2 ip serwera. Jak wybrać, którego ma używać
mickula
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 28.10.2006

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


Otóż problem mam następujący:

mam przypisane do serwera dwa adresy IP:

powiedzmy:
83.6.31.32 oraz 83.6.32.94

Głównym adresem jest 83.6.31.32 i pobranie curlem strony http://www.whatismyip.org/ zwraca właśnie go.
Czy jest jakiś sposób, żeby dać do zrozumienia curlowi, którego z nich ma używać?

Znalazłem coś takiego:
  1. echo http_socket::download('http://something.com', '55.55.44.33');
  2.  
  3. final class http_socket
  4. {
  5. static public function download($url, $bind_ip = false)
  6. {
  7. $components = parse_url($url);
  8. if(!isset($components['query'])) $components['query'] = false;
  9.  
  10. if(!$bind_ip)
  11. {
  12. $bind_ip = $_SERVER['SERVER_ADDR'];
  13. }
  14.  
  15. $header = array();
  16. $header[] = 'GET ' . $components['path'] . ($components['query'] ? '?' . $components['query'] : '');
  17. $header[] = 'Host: ' . $components['host'];
  18. $header[] = 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7';
  19. $header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
  20. $header[] = 'Accept-Language: en-us,en;q=0.5';
  21. $header[] = 'Accept-Encoding: gzip,deflate';
  22. $header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
  23. $header[] = 'Keep-Alive: 300';
  24. $header[] = 'Connection: keep-alive';
  25. $header = implode("\n", $header) . "\n\n";
  26. $packet = $header;
  27.  
  28. //----------------------------------------------------------------------
  29. // Connect to server
  30. //----------------------------------------------------------------------
  31. $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  32. socket_bind($socket, $bind_ip);
  33. socket_connect($socket, $components['host'], 80);
  34.  
  35. //----------------------------------------------------------------------
  36. // Send First Packet to Server
  37. //----------------------------------------------------------------------
  38. socket_write($socket, $packet);
  39. //----------------------------------------------------------------------
  40. // Receive First Packet to Server
  41. //----------------------------------------------------------------------
  42. $html = '';
  43. while(1) {
  44. socket_recv($socket, $packet, 4096, MSG_WAITALL);
  45. if(empty($packet)) break;
  46. $html .= $packet;
  47. }
  48. socket_close($socket);
  49.  
  50. return $html;
  51. }
  52. }


i to rzeczywiście działa, jednak wolałbym korzystać z dobrodziejstw curla.

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post

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: 20.08.2025 - 07:17