Назад | Перейти на главную страницу

Как запустить 5 процессов php, использующих разные интерфейсы eth?

Я использую cron для запуска повседневного скрипта, который должен запускать 5 процессов php-cli. Мне нужно, чтобы они использовали отдельные интерфейсы.

У меня 5 устройств, eth0, eth1, eth2, eth3, eth4.

Как я могу вызвать php, чтобы убедиться, что он использует только один из них?

Он работает на Centos 6.6

Вот связанное сообщение от переполнение стека.

Для установки имени интерфейса или IP-адреса необходимо использовать вызов функции, как показано ниже.

curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");

Почему вы хотите использовать разные интерфейсы в каждом случае? Если вы не тестируете интерфейсы и по какой-то причине не хотите делать это на php, возможно, есть лучшее решение.

libcurl действительно реализует такую ​​функциональность, но я не уверен в привязке для нее php. Если его там нет, вы можете просто использовать curl команда напрямую через вызов оболочки. Из страница руководства:

   --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, а? Никто давно не просматривал эту страницу руководства).