Форумы портала PHP.SU » » Вопросы новичков » CURL пустой ответ

Страниц (1): [1]
 

1. new01 - 16 Ноября, 2014 - 17:21:30 - перейти к сообщению
Здравствуйте!

Вообщем делаю просто запрос через curl от сервера #1 к серверу #2, к каждому из них имею доступ. Проблема в том, что вчера всё работало просто отлично, ответ приходил и т.п. Сегодня пустой ответ. Пробую с другого домена севрера #1 тоже ответ пуст. В логах сервера #2 вообще нет этого обращения. Может ли сервер #1 попасть в бан у 2ого сервера какой-нибудь и т.п.? на сервере 2 стоит для управления Parallels Panel.

При этом с любого другого сервера я получаю ответ. И с локалки тоже. К тому же, на сервер 1 проверил cURL support enabled.

Буду благодарен за любой совет.

Код:
PHP:
скопировать код в буфер обмена
  1. $page="http://...";
  2.         $ch = curl_init($page);
  3.         curl_setopt($ch, CURLOPT_POST, 1);
  4.         # POST /forum/..
  5.         curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36");
  6.         # User-Agent
  7.         $headers = array
  8.         (
  9.        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8',
  10.        'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
  11.        'Accept-Encoding: deflate',
  12.        'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
  13.   );
  14.         curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
  15.         # добавляем заголовков к нашему запросу. Чтоб смахивало на настоящих
  16.         curl_setopt($ch, CURLOPT_REFERER, "http://...");
  17.                   # Подделываем значение - откуда пришли данные.
  18.                  // curl_setopt($ch, CURLOPT_POSTFIELDS, 'action=login&imembername=valenok&ipassword=ne_skaju&submit=%C2%F5%EE%E4');
  19.                   # post данные.
  20.                   # умная libcurl сама добавит заголовки
  21.                   # Content-Type: application/x-www-form-urlencoded и Content-Length: 71
  22.                   curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");  
  23.                   curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");  
  24.                   # Функции для обработки установливаемых форумом кук.
  25.                   # подробнее рассмотрим далее.
  26.                   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  27.                   # Убираем вывод данных в браузер. Пусть функция их возвращает а не выводит
  28.         $string=curl_exec($ch); // выполняем запрос curl
  29.         curl_close($ch);
  30.         $array = json_decode($string, true);
  31. echo $string;


Заранее всем спасибо.
(Добавление)
Хочу дополнить: пробовал делать запрос с сервера 1 на любой другой - пустой ответ. Хотя cURL support enabled.
2. Bio man - 16 Ноября, 2014 - 18:07:43 - перейти к сообщению
какой код HTTP статуса приходит в ответ?
3. new01 - 16 Ноября, 2014 - 18:20:19 - перейти к сообщению
Bio man пишет:
какой код HTTP статуса приходит в ответ?

По вот этому коду пустой. Вообще ничего.
PHP:
скопировать код в буфер обмена
  1.  
  2. if( $curl = curl_init() ) {
  3.     curl_setopt($curl,CURLOPT_URL,'http://...');
  4.     curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
  5.     curl_setopt($curl,CURLOPT_NOBODY,true);
  6.     curl_setopt($curl,CURLOPT_HEADER,true);
  7.     $out = curl_exec($curl);
  8.     echo $out;
  9.     curl_close($curl);
  10.   }
  11.  
4. Bio man - 16 Ноября, 2014 - 18:22:52 - перейти к сообщению
отладь согласно этому http://php.net/manual/ru/function.curl-error.php
(Добавление)
5. new01 - 16 Ноября, 2014 - 18:32:24 - перейти к сообщению
Bio man пишет:
http://php.net/manual/ru/function.curl-error.php

Couldn't resolve host 'xxx.net'
Хм, уже что-то, можете посоветовать что-нибудь?
6. OrmaJever - 16 Ноября, 2014 - 18:36:33 - перейти к сообщению
new01 там же русским по белому написано что у курла не получается
7. Bio man - 16 Ноября, 2014 - 18:38:01 - перейти к сообщению
возможно проблемы с ДНС.
http://stackoverflow[dot]com/questio[dot][dot][dot]ervice-not-known
(Добавление)
http://forum.php.su/topic.php?fo...93697#1271693697
8. new01 - 16 Ноября, 2014 - 23:21:56 - перейти к сообщению
Если делать запрос по IP, то всё ок, ребят не подскажите, как сделать запрос по IP к конкретной странице да ещё и с GET переменными?
9. Bio man - 17 Ноября, 2014 - 00:25:26 - перейти к сообщению
http://php.net/manual/ru/functio...ethostbyname.php
(Добавление)
GET параметры передавай в URL, как и обычно
10. new01 - 17 Ноября, 2014 - 01:49:11 - перейти к сообщению
[quote=Bio man][/quote]
Функция даёт IP только для домена xxx.net, если адрес xxx.net/api.php не работает... к тому же на сервере несколько доменов.
11. Bio man - 17 Ноября, 2014 - 02:09:02 - перейти к сообщению
И в чем проблема? Порежь адрес, потом склей. Нужен список доменов? Пожалуйста, есть функция, можешь найти ее в списке по ссылке выше
12. new01 - 17 Ноября, 2014 - 15:56:36 - перейти к сообщению
[quote=Bio man][/quote]
что значит порежь адрес? xxx.net/api.php на xx.net и api.php? если так то это нам ничего не даст
13. Bio man - 17 Ноября, 2014 - 16:54:05 - перейти к сообщению
Например, было google.com/api.php
стало 173.194.67.138/api.php

Если по IP адресу работает, то почему ничего не даст?
В чём проблема?
14. Panoptik - 17 Ноября, 2014 - 19:05:01 - перейти к сообщению
если проблема с локальным днс сервером, то можно захардкодить в хостс айпи домен, другой вариант, сменить днс сервер на сервере. прописать один из открытых, например 8.8.8.8 или 8.8.4.4
15. new01 - 17 Ноября, 2014 - 20:12:18 - перейти к сообщению
Bio man пишет:
Например, было google.com/api.php
стало 173.194.67.138/api.php

Если по IP адресу работает, то почему ничего не даст?
В чём проблема?

я же объяснил на одно IP несколько доменов, ваш вариант не работает, я пробовал

 

Powered by ExBB FM 1.0 RC1