首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php - socks代理

php - socks代理
EN

Stack Overflow用户
提问于 2010-09-01 00:10:49
回答 2查看 3.4K关注 0票数 1

在过去的十五天里,我为解决这个问题而绞尽脑汁。我有一个连接到远程mysql服务器的PHP应用程序,但该应用程序不能直接访问远程mysql服务器,它必须通过socks代理连接。有谁能帮我解决这个问题吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-06-20 01:49:26

我想看看有没有其他人这么做过,但我猜没有。我为PHP做了一个SOCKS4a的接口。这就是了。

代码语言:javascript
复制
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相同类型的套接字

票数 2
EN

Stack Overflow用户

发布于 2010-09-01 00:46:39

我想你需要通过你的SOCKS代理设置端口转发。这样,您就可以打开一个本地端口(例如,在3306上),该端口通过SOCKS代理将连接转发到远程主机和端口(databasehost:3306)。您可以在后台运行此命令,并使PHP连接到localhost:3306 (然后将其转发/隧道传输到databasehost:3306)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3610960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档