123456
13.06.2016 - 21:25
Добрый вечер, господа программисты!
Имеется VDS и 1024 дополнительных ip адресов.
Цель:
Крон запускает каждые 5 минут файл, который заходит в 1024 аккаунта на одном ресурсе и производит определенные действия.
Под каждым аккаунтом необходимо закрепить по 1 ip адресу, т.к. при авторизации с одного ip в более чем одном аккаунте - система блокирует все аккаунты.
Вопрос:
Подскажите, как в php скрипте изменить ip адрес и отправлять с данного ip curl запросы?
Для того, чтобы отправить запрос с определенного IP адреса, нужно, чтобы в системе существовал соответствующий интерфейс. Я бы сделал алиасом к основному и менял бы на нем адрес через внешний вызов. Правда для этого потребуются права рута, но можно и через sudo настроить. Или сразу запускать скрипт по крону от рута. Так запускать конечно неочень хорошо, зато просто.
А в самом CURL есть опция, с помощью которой можно указать через какой интерфейс работать: CURLOPT_INTERFACE
Содержать перманентно все 1024 адреса на алиасах не самое лучшее решение.
123456
13.06.2016 - 22:45
Цитата |
Содержать перманентно все 1024 адреса на алиасах не самое лучшее решение. |
А какие еще есть варианты?
Суть в том, что необходимо зарегистрировать 1024 аккаунта на одном сайте, и каждый день заходить по 12 раз с каждого аккаунта и выполнять определенные действия.
Требуется максимально позаботиться о безопасности.
123456
13.06.2016 - 22:49
Ron
Так а нельзя дергать кроном файл через рут.
а в нем курлом выполнять требуемые мне действия, указывая в CURLOPT_INTERFACE необходимый ip адрес?
Цитата (123456 @ 13.06.2016 - 22:45) |
А какие еще есть варианты? |
Завести один алиасный интерфейс и менять на нем адрес по мере необходимости через exec. То есть не нужно пробивать все 1024 адреса на 1024 алиаса ну это идиотизм просто-напросто тем более с них не требуется одновременная работа.
Цитата (123456 @ 13.06.2016 - 22:49) |
Так а нельзя дергать кроном файл через рут. |
Почему нельзя-то? Есть рутовая cron таблица. Из нее прямо php /путь/к/файлу.php он запустится с теми правами от кого был вызван. Соответственно и внешние вызовы из него пойдут с теми же, то есть рутовыми.
Цитата (123456 @ 13.06.2016 - 22:49) |
указывая в CURLOPT_INTERFACE необходимый ip адрес? |
Если мы указываем через CURLOPT_INTERFACE ip адрес это всего навсего один из способов определить интерфейс, через который пойдет соединение. Следовательно, если интерфейса с таким адресом не будет в системе, то ничего не получится. Значит надо такой интерфейс завести! )
Invis1ble
13.06.2016 - 23:27
Там надо еще смотреть как выдали эту ёмкость. Можно обресть гем с default gw. И вообще там дофига нюансов может быть, по ситуации.
Теоретически можно попытаться вымутить вообще через SNAT без дополнительных интерфейсов. Ведь мы не ждем внешних соединений на дополнительные адреса. Поскольку решение о маршрутизации принимается уже после того как отработает обратный механизм SNATа, то мы получим пакет адресованный серверу. На его основной интерфейс, поскольку с него ушел пакет по default gw перед тем как занатиться.
Если система виртуализации забрасывает пакеты в сетевой интерфейс/пространство VDS просто по dst_ip, что вполне логично, то такая схема вполне может сработать. Но это так, чисто теория, не более того.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.