Я назначен/64 IPv6 подсеть моего выделенного хоста через /etc/network/interfaces
(распределение Debian Squeeze)Присвоить конкретный адрес IPv6 подсети свернуться
iface eth0 inet6 static
address 2a01:4f8:XXXX:YYYY::2
netmask 64
gateway fe80::1
Теперь я хочу, чтобы получить CURL (PHP 5.3. 22-1 ~ dotdeb.0), чтобы использовать один конкретный IP-адрес этой подсети, pe 2a01:4f8:XXXX:YYYY::3
так что мой код выглядит следующим образом:
curl_setopt($this->_curl, CURLOPT_INTERFACE, '2a01:4f8:XXXX:YYYY::3');
curl_setopt($this->_curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
При запуске curl_exec
я bind failed with errno 99: Cannot assign requested address
. Почему это происходит? При определении каждого адреса IPv6, как/128 в /etc/network/interfaces
, как:
iface eth0 inet6 static
address 2a01:4f8:XXXX:YYYY::2
netmask 128
up ip -6 addr add 2a01:4f8:XXXX:YYYY::3/128 dev eth0 preferred_lft 0
gateway fe80::1
тогда все нормально и локон использует ::3
IP. Но я намерен использовать много IP-адресов из моей подсети (действительно много IP-адресов), так что это практически невозможно. Кто-нибудь знает, почему cURL не может назначить дополнительный IP-адрес подсети/64?
В '/ etc/network/interfaces', вы имели в виду' up ip -6 addr add ...' вместо 'ip -6 addr add ...'? Я считаю, что это синтаксическая ошибка, как она появляется в вашем вопросе. – Celada
@Celada: вы правы (копирование и вставка), спасибо – rabudde