- PR -

PerlモジュールNet:FTPについて

1
投稿者投稿内容
マグナム
会議室デビュー日: 2006/01/23
投稿数: 2
投稿日時: 2006-01-23 18:31
こんにちは。
Linux Fedora Core2
perl-5.8.5-9
Apache
を使用しています。

現在、PerlでNet::FTPを用いてサーバにアクセスするプログラムを作っています。
そこで質問なのですが、プロキシを経由してNet::FTPを利用する方法を教えて頂けないでしょうか?

プロキシ内のサーバにはアクセスできるようになったのですがプロキシの外のサーバにはまったくアクセスできません。

perldocを読んでfirewallの設定もしてみましたが設定方法がイマイチ分らず動きませんでした。
私が試したのは以下のプログラムです。

$ftp=Net::FTP->new($hostname,firewall=>$proxy:8080);
$ftp->login($user,$pass);


$ftp->quit;

分る方がいらっしゃいましたらお願いします。
流しのエンジニア
常連さん
会議室デビュー日: 2003/10/17
投稿数: 48
投稿日時: 2006-01-25 05:33
perlはわからないのですが、多分プロキシ経由だとパッシブ・モードという動作モードで接続サーバに接続する必要があるのだと思います。

pasv () とかpasv_何がし()とかを使う必要があるのではないですかねえ?
使い方はわかりませんが。
takepon
ベテラン
会議室デビュー日: 2005/11/28
投稿数: 55
お住まい・勤務地: 千葉県・東京都
投稿日時: 2006-01-25 18:43
あまり詳しくないのですが、プロキシサーバには何をお使いですか?

有名なFFFTPのサイトに載ってますが、

http://www2.biglobe.ne.jp/~sota/ffftp-qa/qa-23.html

こういう問題が、Net::FTP にも該当するのかもです。

当方の環境(Squid/2.4.STABLE3)だと、Web Proxy となるためか、
Net::FTP は上手く行きませんでした。(自分の知識不足かもしれませんが。。。)

LWP というのを使うと出来るかもしれません。以下はご参考です。

use strict;
use LWP;

print "This is libwww-perl-$LWP::VERSION\\n";

my $proxy = 'http://proxy.dummy.co.jp:8080/';
my $url = 'ftp://anonymous:email@ftp.vector.co.jp/pack/00_index.txt';

my $ua = new LWP::UserAgent();
$ua->proxy("ftp", $proxy);

my $res = $ua->request(new HTTP::Request(GET => $url));
$res->header(Accept => "text/html, */*;q=0.1");

print $res->content;

マグナム
会議室デビュー日: 2006/01/23
投稿数: 2
投稿日時: 2006-01-26 02:07
takeponさん、ご回答ありがとうございます。LWPを使用して無事実行できました。
本当にありがとうございました。


流しのエンジニアさんも、ご回答ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)