在過去的十五天,我打破了我的頭來解決這個問題。我有一個連接到遠程mysql服務器的PHP應用程序,但應用程序不能直接訪問遠程mysql服務器,它必須通過socks代理連接。請任何人都可以幫我解決這個問題。php - 襪子代理
在此先感謝。
在過去的十五天,我打破了我的頭來解決這個問題。我有一個連接到遠程mysql服務器的PHP應用程序,但應用程序不能直接訪問遠程mysql服務器,它必須通過socks代理連接。請任何人都可以幫我解決這個問題。php - 襪子代理
在此先感謝。
我想你需要通過SOCKS代理設置端口轉發。用這個,你打開一個本地端口(例如在3306上),它通過SOCKS代理轉發到遠程主機和端口(數據庫主機:3306)的連接。你在後臺運行,這一點,使PHP連接到本地主機:3306(然後將被轉發/隧道傳輸到databasehost:3306)
我一直在尋找,看看別人做了這個,但我想不會。我爲PHP提供了SOCKS4a的接口。這裏是。
function fsocks4asockopen($proxyHostname, $proxyPort, $targetHostname, $targetPort)
{
$sock = fsockopen($proxyHostname, $proxyPort);
if($sock === false)
return false;
fwrite($sock, pack("CCnCCCCC", 0x04, 0x01, $targetPort, 0x00, 0x00, 0x00, 0x01, 0x00).$targetHostname.pack("C", 0x00));
$response = fread($sock, 16);
$values = unpack("xnull/Cret/nport/Nip", $response);
if($values["ret"] == 0x5a) return $sock;
else
{
fclose(sock);
return false;
}
}
它不完全是任何形式的最終產品,但它可以讓你打開從PHP一個SOCKS4A代理的連接,並得到相同類型的插槽,你會用的fsockopen
哪個mysql軟件包你使用'pdo_mysql','mysqli','mysql'嗎? – prodigitalson 2010-08-31 16:25:46
我正在使用PDO,我也可以使用其他人。 – Kaartz 2010-08-31 16:35:59