2014-10-28 3 views
5

Angenommen, mein Server hat 10 IP-Adressen.Wenn mein Server mehrere IP-Adressen hat, wie kann ich ein Skript mit jeder der IP-Adressen ausführen?

Ich möchte das gleiche PHP-Skript 10 Mal ausführen, aber jedes Mal verwenden Sie eine andere der IP-Adressen. Das PHP-Skript würde auf das Internet zugreifen.

Ist so etwas möglich? (Verwenden Sie jedes Mal eine andere IP)

Wenn ja, können Sie mir in die richtige Richtung zeigen, dies zu können?

Vielen Dank.

+0

Die Antwort läuft darauf hinaus - wie geht Ihr Server "get" diese 10 IP-Adressen? Das sollte dich in die richtige Richtung weisen. –

Antwort

4

Sie können wählen, welche Schnittstelle Sie binden an:

$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

Du bist großartig. Vielen Dank! –

+0

Wenn ich den Code nicht ändern möchte oder eine Binärdatei verwende, wie führe ich ein Skript über die Befehlszeile aus, um eine bestimmte IP-Adresse für ausgehende Anfragen auszuwählen? Ich möchte die IP nur für diesen Befehl oder Shell-Sitzung ändern –

+0

@MarcoMarsala, das hängt stark von der binären ab. Wenn die binäre IP-Adressen fest codiert sind, können Sie sie nicht ändern. Wenn die Binärdatei die Verwendung eines Befehlszeilenparameters zur Auswahl der IP-Adressen zulässt, können Sie dies tun. Sie müssen die Dokumentation Ihrer Binärdatei überprüfen. –