PHP Curl CURLOPT_IPRESOLVE
Я работаю над приложением facebook, которое использует API-интерфейс facebook для аутентификации, недавно обновил facebook до IPv6, и моя сеть не поддерживает IPv6, поэтому все мои вызовы начали возвращаться. Хост является недостижимой ошибкой, я искал ошибки на facebook и обнаружил, что мы все еще можем использовать силу запросов на facebook для использования IPv4 с использованием CURL CURLOPT_IPRESOLVE.
Теперь, когда я пытаюсь отправить запрос в Facebook Graph API, используя curl, я получаю
Примечание: использование константы undefined CURLOPT_IPRESOLVE - предполагается 'CURLOPT_IPRESOLVE'
Я хочу знать, как включить поддержку этой константы или как отключить поддержку IPv6 в php, чтобы я мог отправлять запрос в API-интерфейс Facebook с использованием IPv4.
Мой код
$url = ("https://graph.facebook.com/me/access_token?tokrn");
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$contents = curl_exec($c);
$err = curl_getinfo($c,CURLINFO_HTTP_CODE);
curl_close($c);
Спасибо
Ответы
Ответ 1
Проверьте версию curl
CURLOPT_IPRESOLVE доступен со скручивания 7.10.8
Попробуйте этот образец кода для тестирования
<?php
$version = curl_version();
// These are the bitfields that can be used
// to check for features in the curl build
$bitfields = Array(
'CURL_VERSION_IPV6',
'CURLOPT_IPRESOLVE'
);
foreach($bitfields as $feature)
{
echo $feature . ($version['features'] & constant($feature) ? ' matches' : ' does not match');
echo PHP_EOL;
}
FYI: http://gcov.php.net/PHP_5_3/lcov_html/curl/interface.c.gcov.php