Работа через разные IP адреса

Если есть необходимость работать через разные IP адреса, заведенные на один сервер вы можете воспользоваться функцией socket_bind:

// Создаем новый сокет:
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 

// Ваш выделенный IP-адрес:
$sourceip = 'xxx.xxx.xxx.xxx';

// Используем этот IP-адрес:
socket_bind($sock, $sourceip); 

// Соединяемся с удаленным сервером:
socket_connect($sock, 'xmlsearch.yandex.ru', 80); 

// Делаем запрос:
$request = 'GET /xmlsearch?query=' . $search . ' HTTP/1.0' . 
"\r\n" .'Host: xmlsearch.yandex.ru ' . "\r\n\r\n"; 
socket_write($sock, $request);

// Получаем и выводим ответ:
while(!socket_last_error($sock)){
    if($buffer=socket_read($sock,512,PHP_NORMAL_READ)){
        echo $buffer; 
        } }
// Закрываем сокет:
socket_close($sock);

.