curl с прокси IPv6 не работает. Ошибка: сеть недоступна

#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/');
  

Информация о прокси-сервере:

https://i.stack.imgur.com/DRMy5.png

Комментарии:

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-сервере?