Тот же сервер, та же программа, но запущенная один раз с использованием одной сетевой карты, а затем с другой

StackOverflow https://stackoverflow.com/questions/386232

Вопрос

У меня есть сервер 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top