2012-03-29 45 views
30

嗨我有一個服務器上有幾個虛擬主機上設置。如何設置主機名使用PHP捲曲爲特定的IP

我想使用php來對此服務器的IP進行curl請求。 另外我想要這個請求到服務器的ip上的特定主機名。

有沒有辦法做到這一點?

更詳細一點: 我想使用內部IP在我的服務器之間使用內部LAN發出curl請求。問題是我有幾個網站託管在這臺服務器上。因此,當我向服務器的內部IP發出curl請求時,我想要能夠告訴apache轉到由a指向的特定文件夾(curl_init(xxx.xxx.xxx.xxx))虛擬主機。我希望做的問題有點更加清晰。 - Vishesh喬希3分鐘前編輯

+0

你想顯示你的IP,捲曲不同? – safarov 2012-03-29 20:06:32

+0

如果它是一個由網絡服務器託管的主機名,那麼你可以簡單地使用「the_hostname.domain」,它應該工作,除非它是一個本地主機名,並且你是從網絡外部訪問的,那麼你必須使該域成爲該域的默認域IP,所以你可以使用IP來代替。但即時通訊不是很清楚,如果多數民衆贊成你在看什麼 – Prix 2012-03-29 20:06:35

+0

我想使用內部IP在我的服務器之間使用內部局域網發出curl請求。問題是我有幾個網站託管在這臺服務器上。 所以,當我向服務器的內部IP做一個curl請求..(curl_init(xxx.xxx.xxx.xxx))之類的東西時,我希望能夠告訴apache去指向一個特定的文件夾由一個虛擬主機。我希望這個問題更清楚一點.. – 2012-03-29 20:11:24

回答

42

您可以設置主機頭的捲曲要求:

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

謝謝Leigh。 我只是這樣做,它的工作。 我只是想發表相同的答案:) 謝謝。 – 2012-03-29 20:40:02

12

基礎上雷·辛普森, 它的工作原理,但我需要查詢字符串附加它。 這就是我解決:

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

你需要一個url中的路徑:只有主機IP是不夠的。因此,你應該設置curl_setopt($ ch,CURLOPT_URL,「http://xxx.xxx.xxx.xxx/」); – cernio 2016-09-21 14:30:34

13

對於HTTPS站點使用CURLOPT_RESOLVE它存在於每個PHP版本since 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... 
+0

請注意,雖然此功能在PHP 5.5中實現,但它仍未記錄在PHP文檔中。但是,這是SSL證書正常工作的唯一正確解決方案。現在,可以在CURL手冊中閱讀其他文檔,網址爲:http://curl.haxx.se/libcurl/c/CURLOPT_RESOLVE.html – Riimu 2016-01-29 08:21:58

+0

您真棒!非常感謝! https://stackoverflow.com/questions/47940730/why-curls-fails-to-verify-google-access-token-whereas-browser-succeeds/48167715#48167715 – centurian 2018-01-09 11:57:15