php - носки прокси - PullRequest
       6

php - носки прокси

1 голос
/ 31 августа 2010

Последние пятнадцать дней я ломаю голову, чтобы решить эту проблему. У меня есть приложение PHP, которое подключается к удаленному серверу MySQL, но приложение не может напрямую получить доступ к удаленному серверу MySQL, оно должно подключаться через прокси-сервер socks. Пожалуйста, кто-нибудь может помочь мне решить эту проблему.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 19 июня 2012

Я искал, сделал ли кто-нибудь еще это, но я думаю, нет. Я сделал интерфейс к SOCKS4a для PHP. Вот оно.

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;
    }
}

Это не совсем конечный продукт любого рода, но он позволит вам открыть соединение с прокси-сервером socks4a из PHP и получить тот же сокет, что и с fsockopen

0 голосов
/ 31 августа 2010

Я думаю, вам нужно настроить переадресацию портов через прокси-сервер SOCKS. При этом вы открываете локальный порт (например, на 3306), который перенаправляет соединения на удаленный хост и порт (databasehost: 3306) через прокси SOCKS. Вы запускаете это в фоновом режиме и заставляете PHP подключаться к localhost: 3306 (который затем будет перенаправлен / туннелирован на databasehost: 3306)

...