私が正しく理解している場合、仮想ホストを使用して Web サーバーに http 要求を行う必要がありますが、DNS はまだ設定されていないため、URL で IP アドレスを指定する必要がありますが、Host:ヘッダーで何か他のものを送信する必要があります。
そういうことなら、できるかも..
C# で WebProxy を使用する場合:
.NET 4以降については、カヨデ・レナードの回答を参照してください。
サーバーを実行しているが、ヘッダー67.223.227.171:8888
に含める必要がある場合に使用するコードを次に示します。www.example.com
Host:
System.Net.WebRequest r = System.Net.WebRequest.Create("http://www.example.com");
r.Proxy = new WebProxy("http://67.223.227.171:8888");
このリンクを参照してください
WinHttp を使用する C++ の場合:
WinHttp を使用するHost:
と、WinHttpAddRequestHeaders でヘッダーを簡単に設定できます。
したがって、サーバーを実行しているが、ヘッダー67.223.227.171:8888
に含める必要がある場合は、次のようになります。www.example.com
Host:
#include <windows.h>
#include <winhttp.h>
#include <assert.h>
int main() {
HINTERNET hSession = WinHttpOpen(L"A WinHTTP Example Program/1.0",
WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
WINHTTP_NO_PROXY_NAME,
WINHTTP_NO_PROXY_BYPASS, 0);
assert(hSession != NULL);
// Use WinHttpConnect to specify an HTTP server.
HINTERNET hConnect = WinHttpConnect( hSession,
L"67.223.227.171",
8888,
0 );
assert(hConnect != NULL);
// Open and Send a Request Header.
HINTERNET hRequest = WinHttpOpenRequest( hConnect,
L"GET",
L"/downloads/samples/internet/winhttp/retoptions/redirect.asp",
NULL,
WINHTTP_NO_REFERER,
WINHTTP_DEFAULT_ACCEPT_TYPES,
0 );
assert(hRequest != NULL);
BOOL httpResult = WinHttpAddRequestHeaders(
hRequest,
L"Host: www.example.com",
-1L,
0);
assert(httpResult);
httpResult = WinHttpSendRequest( hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0,
WINHTTP_NO_REQUEST_DATA,
0,
0,
0 );
assert(httpResult);
httpResult = WinHttpReceiveResponse( hRequest, NULL );
assert(httpResult);
}
編集済み:クラス名はWebProxy
. C# サンプル コードを追加しました。C++ サンプル コードを追加しました。