2010-01-11 65 views
0

我在FreeBSD 7.1上安装了以太网接口,并附有3个ip地址。如何启动绑定到不同ip地址的php脚本?

#使用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 

如何启动绑定到不同的IP不会忽略PHP脚本?我需要这个脚本从不同的IP地址访问一个服务。

+0

你说的是PHP流还是什么? PHP本身不会自动绑定任何东西。 – 2010-01-11 12:26:14

回答

1

如果您想在指定的IP地址设置服务,只需填写该地址作为socket_bind函数的第二个参数即可。如果IP地址因情况而异,则可以使用命令行参数指定此地址

如果希望脚本在连接到远程服务时使用指定的IP地址,这并不容易。由于计算机上的互联网堆栈会决定使用哪个IP地址,具体取决于目的地是哪个网络。在你的情况下,所有的IP地址都在同一个网络上。
我认为你应该认为在这种情况下无论是真的使用特定的地址所需...

+1

连接到特定IP时,连接到远程服务器时非常容易。在socket_ *函数的情况下,您只需在执行socket_connect之前调用socket_bind(是的,socket_bind不仅仅用于侦听套接字)。对于HTTP流包装等(如file_get_contents),它们接受上下文参数,您可以使用该上下文参数来设置绑定到特定IP地址的上下文(请参阅:http://fi.php.net/manual/en /context.socket.php) – 2010-01-11 12:36:56

+0

也可以使用curl_setopt。 $ ch = curl_init(); curl_setopt($ ch,CURLOPT_INTERFACE,“XXX.XXX.XXX.XXX”); – SaltLake 2010-01-11 13:52:52

相关问题