我使用 cron 运行日常脚本,该脚本必须运行 5 个 php-cli 进程。我需要它们使用单独的接口。
我有 5 个设备,eth0、eth1、eth2、eth3、eth4。
我如何调用 php 来确保它只使用其中一个?
它在 Centos 6.6 上运行
答案1
以下是来自的相关文章堆栈溢出。
您需要使用如下函数调用来设置接口名称或 IP 地址。
curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");
答案2
为什么在每种情况下都要使用不同的接口?除非您正在对接口进行基准测试,并且出于某种原因想要在 php 中执行此操作,否则可能有更好的解决方案。
libcurl 确实实现了这种功能,但我不确定 php 是否绑定了它。如果没有,您可以直接curl
通过 shell 调用使用该命令。从手册页:
--interface <name>
Perform an operation using a specified interface. You can enter
interface name, IP address or host name. An example could look
like:
curl --interface eth0:1 http://www.netscape.com/
(哇,netscape.com,是吗?很久没有人看过那个手册页了)。