Отправлять запросы PHP с выделенного IP-адреса вместо общего IP-адреса [закрыто]

Я установил выделенный IP-адрес для веб-сайта (с помощью directadmin), но все исходящие запросы php отправляются с общего IP-адреса сервера. Результатом следующего кода всегда является общий IP-адрес.

$a = file_get_contents("http://mxtoolbox.com/WhatIsMyIP/");
print $a;

Мне нужно отправлять запросы с выделенного IP-адреса, потому что мой платежный шлюз принимает запросы только с этого IP-адреса.

Нужно ли мне добавлять правила iptables для отправки всех запросов с выделенного IP-адреса или есть способ лучше?

1
задан 13 February 2015 в 21:04
2 ответа

Установите маршрут к платежному процессору через выделенный IP. Команда ip route add - ваш друг.

.
4
ответ дан 3 December 2019 в 17:05

Это должно быть в StackOverflow. Вам необходимо создать контекст для вашего сокета.

$opts = array(
    'socket' => array(
        'bindto' => '10.10.1.1:0',
    )
);

$context = stream_context_create($opts);
$a = file_get_contents("http://mxtoolbox.com/WhatIsMyIP/", false, $context);
print $a;

В этом примере это будет привязано к IP 10.10.1.1. Порт 0 используется для того, чтобы ОС могла выбрать порт.

В противном случае вам придется либо изменить маршрут по умолчанию для всего трафика, либо определить IP-адрес сайта, который вы пытаетесь достичь. Последние могут быть ненадежными, если они используют распределенную сеть или изменяют свой адрес.

1
ответ дан 3 December 2019 в 17:05

Теги

Похожие вопросы