2010-11-10 5 views
3

J'ai certaines fonctions qui utilisent stream_socket_client (pas curl) en php et j'ai plusieurs interfaces eth1 eth2 ... etc avec des ips différents Donc je veux utiliser différentes interfaces quand je me connecte en tant que client, puis-je faire cela? Je ne trouve pas d'option pour cela ni dans php.inicomment lier stream_socket_client à une interface en php?

Répondre

1

AFAIK ce n'est pas possible. Les interfaces sont extraites de PHP; vous venez juste de les utiliser, ne les choisissez pas.

Modifier: laissez-moi reformuler cela. Si vous voulez faire un appel système/shell (par exemple, ifconfig -a) et analyser cette sortie, puis lier le socket à cette adresse particulière, vous pouvez avoir de la chance ... mais il semble que ça marche.

+0

Quant à la façon de se lier à une adresse particulière, voir le (http [Options de contexte socket]: //pt.php. net/manual/fr/context.socket.php) – Artefacto

5

Voici comment ajouter une interface IP dans stream_socket_client

// connect to the internet using the '192.168.0.100' IP 
$opts = array(
    'socket' => array(
     'bindto' => '192.168.0.100:0', 
    ), 
); 


// create the context... 
$context = stream_context_create($opts); 
$fp = @stream_socket_client ($link, $errno, $errstr, 120, STREAM_CLIENT_CONNECT, $context); 

http://pt.php.net/manual/en/context.socket.php

Questions connexes