Как в PHP использовать специфичный сетевой интерфейс? Сейчас ищу решение, но может быть кто-то быстрее подскажет.
Мне необходимо, чтобы исходящие соединения выполняемые в php для определенного web-приложения или запущенного через консоль выполнялись через отдельный сетевой интерфейс.

21 Авг 2019 в 06:39
227 +1
0
Ответы
1

Для использования специфичного сетевого интерфейса в PHP вы можете использовать функцию stream_context_create() и передать параметр socket с указанием IP адреса и порта для конкретного интерфейса.

Пример использования:

$context = stream_context_create([
'socket' => [
'bindto' => '10.0.0.1:0', // укажите IP адрес и порт вашего интерфейса
],
]);
$socket = stream_socket_client('tcp://example.com:80', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
if (!$socket) {
echo "Ошибка при подключении: $errstr ($errno)";
} else {
fwrite($socket, "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n");
echo stream_get_contents($socket);
fclose($socket);
}

Пожалуйста, замените 10.0.0.1:0 на IP адрес и порт вашего специфичного сетевого интерфейса. И убедитесь, что сервер, на который вы подключаетесь, действительно прослушивает этот интерфейс.

20 Апр 2024 в 13:15
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир