Отправить запрос на ip через curl

192
14 апреля 2019, 18:10

Пробую отправить запрос на ip нужного сайта через curl. Вначале отправил через постман такой запрос:

GET / HTTP/1.1
Host: 1.1.1.1
Host: test.ru

URL : https://1.1.1.1/. Доменное имя сайта указано в заголовке Host. Никаких проблем - мне вернулось содержимое html страницы. Но когда я попробовал перенести в php что то пошло не так :

$ch = curl_init('1.1.1.1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('host:test.ru')); 
$html = curl_exec($ch);
echo $html;

В результате очень долго грузит и в итоге ничего (null) не возвращает. Пробовал с указанием порта - не работает. Запрос просто не отправляется. В чем может быть дело ?

UPD Добавил вывод ошибок $errmsg = curl_error( $ch ); Получил :

Failed to connect to 1.1.1.1 port 80: Connection timed out

поставил порт 443 - curl_setopt($ch, CURLOPT_PORT, 443); ошибка осталась. Причем url согласно информации $info = curl_getinfo($ch); записывается как ["url"]=> string(22) "http://1.1.1.1/"принудительно указать вместо ip адреса https://ip.. не получается, та же ошибка :

Failed to connect to 1.1.1.1 port 443: Connection timed out

Но в постмане (+ telnet) же все отправлялось, не понимаю в чем дело. Даже не пингуется сервер ping 1.1.1.1

Answer 1

Точно такой код как у вас работает корректно:

$ch = curl_init('1.1.1.1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('host:test.ru')); 
$html = curl_exec($ch);
echo $html;

Показывает HTML код заглушки Cloudflare:

<title>Origin DNS error | test.ru | Cloudflare</title>
READ ALSO
Можно ли как-то быстро включить / отключить xdebug? Без изменения php.ini и перезагрузки сервера?

Можно ли как-то быстро включить / отключить xdebug? Без изменения php.ini и перезагрузки сервера?

Страницы моего сайта без xdebug грузятя за несколько миллисекунд, а с xdebug за 5 секунд - минимумА бывает и дольше

165
Как сделать MySQL AUTO_INCREMENT uniqe id рандомальный?

Как сделать MySQL AUTO_INCREMENT uniqe id рандомальный?

Как сделать к примеру ID 600000 при добавлении новой строчки? Чтоб был рандом например 6000023 следущий 6000073 и так далее

141
Запись в БД одной кнопкой

Запись в БД одной кнопкой

Есть цикл где выводятся записи из БДВ цикле есть форма с кнопкой "ОК"

168
MYSQL Insert создает две строчки

MYSQL Insert создает две строчки

Отправляю некоторые данные с помощью PHP на ДБ

139