2014-10-28 14 views
5

Załóżmy, że mój serwer ma 10 adresów IP.Jeśli mój serwer ma wiele adresów IP, w jaki sposób mogę uruchomić skrypt przy użyciu każdego z adresów IP?

Chciałbym uruchomić ten sam skrypt PHP 10 razy, ale za każdym razem używać innego z adresów IP. Skrypt PHP będzie miał dostęp do Internetu.

Czy coś takiego jest możliwe? (używając innego IP za każdym razem)

Jeśli tak, czy możesz wskazać mi właściwy kierunek, w którym mogę to zrobić?

Dziękuję.

+0

Odpowiedź sprowadza się do tego - w jaki sposób serwer "get" te 10 adresów IP? To powinno wskazać ci właściwy kierunek. –

Odpowiedz

4

Można wybrać interfejs, który powiąże do:

$options = array(
    'socket' => array(
     'bindto' => '192.168.0.12:0', 
    ), 
); 

$context = stream_context_create($options); 

/* Sends an http request to www.example.com through local interface 192.168.0.12:0 */ 
$fp = fopen('http://www.example.com', 'r', false, $context); 
fpassthru($fp); 
fclose($fp); 

http://php.net/manual/en/function.stream-context-create.php

+0

Jesteś niesamowity. Dziękuję Ci! –

+0

Jeśli nie chcę zmieniać kodu lub używam pliku binarnego, jak uruchomić skrypt z wiersza poleceń, wybierając konkretny adres IP dla żądań wychodzących? Chcę zmienić ip tylko dla tego polecenia lub sesji powłoki –

+0

@MarcoMarsala, która zależy w dużym stopniu od pliku binarnego. Jeśli plik binarny ma stałe adresy IP, nie można ich zmienić. Jeśli plik binarny umożliwia użycie parametru wiersza polecenia do wybrania adresów IP, możesz to zrobić. Musisz sprawdzić dokumentację swojego pliku binarnego. –

Powiązane problemy