#php #curl
#php #curl
Вопрос:
Я пытаюсь сделать запрос curl к FaceBook Graph API на PHP. Всякий раз, когда я использую прокси-сервер IPv4, он работает нормально. Теперь я начал использовать прокси-сервер IPv6 для совершения вызовов, что приводит к следующей ошибке:
Ошибка: Сеть недоступна
Я думаю, что код работает правильно. Ошибка может исходить с сервера, но я не знаю.
Я использую CentOS 6 64 bit nginx. Пожалуйста, помогите мне, большое спасибо.!!
p / s: извините, у меня плохой английский, я использовал переводчик Google для этой темы / mny.! )
- curl с прокси-сервером IPv4 (работает)
PHP КОД:
function get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Win) AppleWebKit/1000.0 (KHTML, like Gecko) Chrome/65.663 Safari/1000.01');
curl_setopt($ch, CURLOPT_PROXY, '45.32.117.124');
curl_setopt($ch, CURLOPT_PROXYPORT, '47876');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'SCFCFm:LSdWk1');
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$result = curl_exec($ch);
if(curl_errno($ch))
die(curl_error($ch));
curl_close($ch);
return $result;
}
echo get('https://graph.facebook.com/'); // show result ok
- curl с IPv прокси (не работает)
PHP КОД:
function get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Win) AppleWebKit/1000.0 (KHTML, like Gecko) Chrome/65.663 Safari/1000.01');
curl_setopt($ch, CURLOPT_PROXY, '[2001:19f0:4401:233:c127:605a:4cc8:7c26]');
curl_setopt($ch, CURLOPT_PROXYPORT, '47876');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'SCFCFm:LSdWk1');
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
$result = curl_exec($ch);
if(curl_errno($ch))
die(curl_error($ch)); // die here , response: 2001:19f0:4401:233:c127:605a:4cc8:7c26: Network is unreachable
curl_close($ch);
return $result;
}
echo get('https://graph.facebook.com/');
Информация о прокси-сервере:
Комментарии:
1. Вы уверены, что хост, на котором вы запускаете этот скрипт, имеет подключение IPv6?
2. ПРИВЕТ @Pelle, как проверить, разрешено ли подключение к серверу IPv6? Я использую centos 6 64bit, сервер nginx, php-fpm mariadb
3. Вы можете, например, попробовать
ping6 2001:19f0:4401:233:c127:605a:4cc8:7c26
4. @Pelle все еще показывает «подключиться: сеть недоступна». как включить подключение IPv6 на моем vps-сервере?