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

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

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

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

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

2 ответа

Решение

Вот связанный пост от stackoverflow.

Вам нужно использовать вызов функции, как показано ниже, чтобы установить имя интерфейса или 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, а? Никто не просматривал эту справочную страницу в какое-то время).

Другие вопросы по тегам