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

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

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

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

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

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

<?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); 

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

 <?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); ?> 

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

 <?php $ch = curl_init('https://www.example.com/'); // note: array used here curl_setopt($ch, CURLOPT_RESOLVE, ["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...