1

HTTPSサーバーにPUTリクエストを送信してファイルを送信するPerlスクリプトがあります。リクエストは IO::Socket::SSL でのみ行われます。

$socket = new IO::Socket::INET(PeerAddr => $host,PeerPort => $port,Proto    => 'tcp');
my $h ="PUT ".$path." HTTP/1.0\r\n";
    $h.="Accept: */*\r\n";
    ........
    $h.="\r\n";

print $socket $h;

しかし、今はプロキシサーバー経由でこのリクエストを行う必要があります

これを行う最も簡単な方法は?Prozy サーバーを構成して、さまざまな種類の接続を設定できます (種類が異なる場合)。ベストタイプは?

依頼はどうする?私が理解しているように、IO::Socket を使用してプロキシに接続し、CONNECT のようなものを配置する必要があります。

これはどのように見えますか?

ありがとう

更新 1. このような解決策を見つけましたhttp://search.cpan.org/~oleg/IO-Socket-Socks-0.62/lib/IO/Socket/Socks.pm モジュール IO::Socket::Socks は何をしますか私は欲しい。ただし、HTTPS 用ではありません。IO::Socket::SecureSocks を使ってみました。しかし、それはいつも失敗します

#!/usr/bin/perl

use IO::Socket::SecureSocks;


my $socket = IO::Socket::SecureSocks->new(
              ProxyAddr   => '127.0.0.1',
              ProxyPort   => 8876,  
              ConnectAddr => 'yahoo.com',
              ConnectPort => 443,
              Timeout     => 10
              ) or die "Error $!\n";

print $socket "GET / HTTP 1.1\r\n\r\n";
print join ('',<$socket>);

エラーを示します。私は何を間違っていますか?

このプロキシは、PHP の curl および https リンクで正常に動作します。プロキシはSOCKS 5プロキシです

4

1 に答える 1

4

私は自分で解決策を見つけました。モジュール IO::Socket::Socks::Wrapper を使用して、すべてのリクエストを SOCKS5 プロキシにリダイレクトしました。スクリプトの先頭にのみ追加しました

use IO::Socket::Socks::Wrapper (
{
    ProxyAddr => 'proxy.addr',
    ProxyPort => 8876,
}
);
于 2013-09-04T13:06:18.390 に答える