簡體   English   中英

curl - 解決PHP CURL庫中的等價物

[英]curl --resolve equivalent in PHP CURL library

在PHP CURL庫中是否存在curl --resolve ....的等價物?

背景:我有循環DNS(一個域名解析為多個IP),我想向特定主機發送請求。 我使用基於apache名稱的虛擬主機,因此必須在HTTP請求中顯示正確的域名。

我已嘗試在請求URL中指定IP: curl_setopt($ch, CURLOPT_URL, '127.0.0.1') ,並使用curl_setopt($ch, CURLOPT_HTTPHEADER, 'Host: example.com') 它適用於HTTP,但對於HTTPS,我得到SSL驗證錯誤(顯然CURL驗證證書與URL主機名和NOT Host:主機名)。

使用hosts文件不是一個方便的選擇。

首先,回答任何 curl選項轉換為libcurl(或PHP / CURL)的答案的最佳方法是使用--libcurl選項。

如果這樣做,您將了解到--resolve轉換為使用libcurl的CURLOPT_RESOLVE自5.5.0以來在PHP中受支持。 7.21.3起由libcurl支持。

我在Python的幫助下有一個解決方案。

在.php文件中,只需回顯python的輸出:

<?php
echo passthru("python python.py");
?>

在python.py中:

import httplib
conn = httplib.HTTPSConnection('127.0.0.1');
url = "example.com"
conn.request("GET", url)
content = conn.getresponse()
print content.read()
conn.close()

如果你打算分叉另一個進程,只需使用“--resolve”選項與另一個腳本進行分叉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM