как привязать stream_socket_client к интерфейсу в php? - PullRequest
3 голосов
/ 11 ноября 2010

У меня есть некоторые функции, которые используют stream_socket_client (не curl) в php, и у меня есть несколько интерфейсов eth1 eth2 ... и т.д. с разными ips. Поэтому я хочу использовать разные интерфейсы, когда я подключаюсь как клиент, могу ли я это сделать?Я не могу найти вариант для этого, ни в php.ini

Ответы [ 2 ]

6 голосов
/ 26 марта 2012

Вот как добавить IP-интерфейс в stream_socket_client

// connect to the internet using the '192.168.0.100' IP
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:0',
    ),
);


// create the context...
$context = stream_context_create($opts);
$fp = @stream_socket_client ( $link, $errno, $errstr, 120, STREAM_CLIENT_CONNECT, $context);

http://pt.php.net/manual/en/context.socket.php

1 голос
/ 11 ноября 2010

AFAIK, это невозможно. Интерфейсы абстрагируются от PHP; Вы просто используете их, а не выбираете их.

Редактировать: позвольте мне перефразировать это. Если вы хотите сделать системный вызов (например, ifconfig -a) и проанализировать этот вывод, а затем связать сокет с этим конкретным адресом, возможно, вам повезет ... но это похоже на сомнительное дело.

...