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:
final class http_socket { { if(!$bind_ip) { $bind_ip = $_SERVER['SERVER_ADDR']; } $header[] = 'GET ' . $components['path'] . ($components['query'] ? '?' . $components['query'] : ''); $header[] = 'Host: ' . $components['host']; $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'; $header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; $header[] = 'Accept-Language: en-us,en;q=0.5'; $header[] = 'Accept-Encoding: gzip,deflate'; $header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7'; $header[] = 'Keep-Alive: 300'; $header[] = 'Connection: keep-alive'; $packet = $header; //---------------------------------------------------------------------- // Connect to server //---------------------------------------------------------------------- $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, $bind_ip); socket_connect($socket, $components['host'], 80); //---------------------------------------------------------------------- // Send First Packet to Server //---------------------------------------------------------------------- socket_write($socket, $packet); //---------------------------------------------------------------------- // Receive First Packet to Server //---------------------------------------------------------------------- $html = ''; while(1) { socket_recv($socket, $packet, 4096, MSG_WAITALL); $html .= $packet; } socket_close($socket); return $html; } }
i to rzeczywiście działa, jednak wolałbym korzystać z dobrodziejstw curla.
Z góry dziękuję za pomoc.