Как установить имя хоста используя php curl для конкретного ip - PullRequest
34 голосов
/ 30 марта 2012

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

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

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

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

Ответы [ 3 ]

50 голосов
/ 30 марта 2012

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

<?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);
22 голосов
/ 27 октября 2015

Для сайтов 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...
14 голосов
/ 18 февраля 2014

База на Ли Симпсоне, работает, но мне нужно прикрепить строку запроса к немуВот что я работаю вокруг:

<?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);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...