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