Тот же сервер, та же программа, но запущенная один раз с использованием одной сетевой карты, а затем с другой
-
23-08-2019 - |
Вопрос
У меня есть сервер Linux с несколькими IP-адресами (таким образом, несколько eth0, eth0: 0, eth0: 1 и т.д.).Скрипт, который я пытаюсь запустить, - это скрипт php CLI, который загружает данные с другого серверного API, и я хотел бы изменить IP-адрес на основе других параметров.Как только скрипт запущен, мне больше не нужно менять ip-адрес ЭТОГО КОНКРЕТНОГО скрипта до его завершения.
Есть ли у вас какие-нибудь подсказки, возможно ли этого достичь?Моим другим решением было установить Xen или OpenVZ и создать N разных VPS для каждого IP, но, как вы можете видеть, это определенно PITA :-)
Решение
Вы не указываете, как вы подключаетесь к другому серверу, но с помощью сокетов вы можете попробовать socket_bind.
Редактировать:С curl вы можете попробовать curl_setopt кудрявый набор.CURLOPT_INTERFACE - имя используемого исходящего сетевого интерфейса.Это может быть имя интерфейса, IP-адрес или имя хоста.
Другие советы
Я знаю, как это сделать на C - вы используете bind() в своем сокете перед вызовом connect() и привязываетесь к IP-адресу, назначенному желаемому интерфейсу, передавая 0 для порта.Я не знаю, как это сделать на PHP.