nepster-web
@nepster-web

Как изменить IP с которого делаются запросы?

Не совсем смог передать суть вопроса в заголовке, поэтому более детальное описание.

У меня есть сервер, к нему прикреплено несколько IP адресов и храниться несколько сайтов. (условно назовем: сайт Ex и все остальные сайты на сервере).
Задача разместить сайт Ex на одном IP, а все остальные сайты на другом IP.

Путем не хитрых конфигураций сети на сервере, я добился того, что при пинге сайта Ex используется один IP, при пинге всех остальных сайтов используется второй IP.

Однако, если делать запросы с сайта Ex и с других сайтов (например через функцию file_get_contents), то IP будет одинаковый (как я понял это дифолтный IP сервера).

Я знаю о функции stream_context_set_default, но не знаю как ее использовать вне прокси, возможно есть какие-то другие варианты как можно засетить необходимый IP для любых обращений с сайта ?
  • Вопрос задан
  • 653 просмотра
Пригласить эксперта
Ответы на вопрос 2
romy4
@romy4
Exception handler
вы когда создаёте сокет, вам нужно указать в нём bind на определённый адрес
Ответ написан
glebovgin
@glebovgin
Full Stack Web Developer
1. Использовать Curl, что в целом более чем здравая идея. Прописываете для CURLOPT_INTERFACE нужный ip и всё.
2. Если говорить о file_get_contents()
$ctx = stream_context_create(array('socket' => array('bindto' => '1.2.3.4:0'))); // ip и порт
$data = file_get_contents('http://url...', NULL, $ctx);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы