Почему cURL сообщает о неверном IP-адресе как об ошибке? - PullRequest
2 голосов
/ 18 сентября 2010

У меня есть следующий код PHP, который использует cURL:

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,"http://area51.stackexchange.com/users/flair/31.json");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

$a_data = json_decode(curl_exec($ch));

echo curl_error($ch);

При попытке получить доступ к странице через HTTP я получаю следующую ошибку:

Не удалось подключиться к 0.0.0.31: неверный аргумент

Однако код отлично работает при запуске из командной строки.

Что может возможно заставить cURL попытаться подключиться к 0.0.0.31, который является AFAIK, даже не действительным IP-адресом?

Ответы [ 3 ]

4 голосов
/ 18 сентября 2010

"Что может привести к тому, что cURL попытается подключиться к 0.0.0.31, то есть к AFAIK, а не к действительному IP-адресу?"

Ваш DNS не работает.Я проверил ваш код, и он работает.

0 голосов
/ 19 сентября 2013

У меня была такая же проблема.

Я думаю, что вы могли бы сделать так, чтобы построить URL следующим образом:

$url = "http://area51.stackexchange.com/users/flair/" + 31 + ".json";

И по какой-то причине URL-адрес затем переводится в 0.0.0.31.

Вместо этого попробуйте объединить строку, например, так:

$url = "http://area51.stackexchange.com/users/flair/" . 31 . ".json";

Решил мою проблему, по крайней мере!

0 голосов
/ 18 сентября 2010

Когда вы говорите «код работает нормально при запуске из командной строки», вы имеете в виду, что вы запускали его с интерпретатором PHP CLI?В этом случае вы можете проверить наличие заметных несоответствий между выводом php -i против phpinfo() на веб-сервере.Это может быть какое-то странное несоответствие версий или проблема среды, хотя ваши предположения так же хороши, как и мои.

Если вы (как я изначально думал) просто говорите о запуске команды curl, вы можете попробовать проверитьтам тоже номера версий или переменные окружения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...