2010-01-11 7 views
0

J'ai une interface ethernet sur FreeBSD 7.1 avec 3 adresses IP liées.Comment lancer un script PHP lié à différentes adresses IP?

# ifconfig

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 
options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> 
ether 00:e0:81:b1:1b:4b 
inet 89.xx.xx.1 netmask 0xfffffc00 broadcast 89.xx.xx.255 
inet 89.xx.xx.2 netmask 0xffffffff broadcast 89.xx.xx.2 
inet 89.xx.xx.3 netmask 0xffffffff broadcast 89.xx.xx.3 
media: Ethernet autoselect (100baseTX <full-duplex>) 
status: active 

Comment lancer script php binded à différentes adresses IP? J'ai besoin de ce script pour accéder à un service à partir d'adresses IP différentes.

+0

Parlez-vous de flux PHP ou quoi? PHP lui-même ne lie pas automatiquement à quoi que ce soit. –

Répondre

1

Si vous souhaitez configurer un service à une adresse IP spécifiée, remplissez simplement cette adresse en tant que second paramètre de la fonction socket_bind. Si l'adresse IP varie en fonction de la situation, vous pouvez utiliser un paramètre de ligne de commande pour spécifier cette adresse

Si vous voulez que le script à utiliser une adresse IP spécifiée lors de la connexion à un service distant, ce n'est pas facile. Étant donné que la pile Internet sur votre ordinateur détermine l'adresse IP qui sera utilisée, selon le réseau de la destination. Et dans votre cas, toutes les adresses IP sont sur le même réseau.
Je pense que vous vous devriez penser à cette situation si elle est vraiment nécessaire d'utiliser une adresse particulière ...

+1

La liaison à une adresse IP spécifique est très facile lors de la connexion à un serveur distant. Dans le cas des fonctions socket_ *, il suffit d'appeler socket_bind avant de faire socket_connect (oui, socket_bind n'est pas seulement pour les sockets d'écoute). Dans le cas des wrappers de flux HTTP et autres (tels que file_get_contents), ils acceptent un paramètre de contexte que vous pouvez utiliser pour configurer un contexte qui se lie à une adresse IP spécifique (voir: http://fi.php.net/manual/fr /context.socket.php) –

+0

Vous pouvez également utiliser curl_setopt. $ ch = curl_init(); curl_setopt ($ ch, CURLOPT_INTERFACE, "XXX.XXX.XXX.XXX"); – SaltLake

Questions connexes