Как установить имя хоста с помощью php curl для определенного ip
Привет, у меня есть сервер, на котором установлено несколько виртуальных хостов.
Я хотел сделать запрос curl на этот ip-сервер, используя php.
Также я хотел сделать этот запрос для определенного имени хоста на сервере ip.
Есть ли способ сделать это?
Немного более подробная информация:
Я хочу сделать запросы на завивки между моими серверами, используя внутреннюю локальную сеть, используя свой внутренний IP-адрес. Проблема в том, что у меня есть несколько сайтов, размещенных на этом сервере. Поэтому, когда я делаю запрос curl на внутренний IP-сервер сервера, что-то вроде (curl_init (xxx.xxx.xxx.xxx)), я хочу, чтобы я мог сказать apache, чтобы перейти к определенной папке, на которую указывает виртуальный хост. Надеюсь, это поставило вопрос немного яснее.. - Vishesh Joshi 3 мин назад редактировать
Ответы
Ответ 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);
?>