Подтвердить что ты не робот

Как установить имя хоста с помощью php curl для определенного ip

Привет, у меня есть сервер, на котором установлено несколько виртуальных хостов.

Я хотел сделать запрос curl на этот ip-сервер, используя php. Также я хотел сделать этот запрос для определенного имени хоста на сервере ip.

Есть ли способ сделать это?

Немного более подробная информация: Я хочу сделать запросы на завивки между моими серверами, используя внутреннюю локальную сеть, используя свой внутренний IP-адрес. Проблема в том, что у меня есть несколько сайтов, размещенных на этом сервере. Поэтому, когда я делаю запрос curl на внутренний IP-сервер сервера, что-то вроде (curl_init (xxx.xxx.xxx.xxx)), я хочу, чтобы я мог сказать apache, чтобы перейти к определенной папке, на которую указывает виртуальный хост. Надеюсь, это поставило вопрос немного яснее.. - Vishesh Joshi 3 мин назад редактировать

4b9b3361

Ответ 1

Вы можете установить заголовок узла в запросе на завивки:

<?php
$ch = curl_init('XXX.XXX.XXX.XXX');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: subdomain.hostname.com'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);

Ответ 2

Для сайтов HTTPS используйте CURLOPT_RESOLVE который существует в каждой версии PHP с PHP 5.5.

<?php
$ch = curl_init('https://www.example.com/');
// note: array used here
curl_setopt($ch, CURLOPT_RESOLVE, array(
    "www.example.com:443:172.16.1.1",
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);

Пример вывода:

* Added www.example.com:443:172.16.1.1 to DNS cache
* Hostname www.example.com was found in DNS cache
*   Trying 172.16.1.1...

Ответ 3

База на Ли Симпсон, Он работает, но мне нужна строка запроса. Это то, над чем я работаю:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://xxx.xxx.xxx.xxx/index.php?page=api&action=getdifficulty");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: subdomain.hostname.com'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);
?>