2010-01-11 71 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

相關問題