使用Perl :: FTP时,我应该在主机字段中放置什么来连接到网络上连接的本地计算机

Cha*_*ani 0 ftp perl

我在perl中使用Net :: FTP来进行一些文件传输.当我运行以下代码时: -

使用IP地址有什么问题吗?我是否正确在主机领域提供此功能?

use strict;          
use Net::FTP;

my $host = "10.77.69.124";
my $user = "administrator";
my $password = "Password";

my $f = Net::FTP->new($host, Debug =>0) or die "Can't open $host\n";
$f->login($user, $password) or die "Can't log  $user in\n";
Run Code Online (Sandbox Code Playgroud)

代码无法连接到远程主机.为什么会这样?这不应该与提供的IP地址一起工作$host吗?

Seb*_*mpf 5

Net :: FTP的构造函数允许您传递单个标量值或一组主机来尝试.此字段的值应与IO :: Socket :: INET中的PeerAddr (主机名或IP 地址)相同.

通过指定Debug仔细查看发生的情况.如果您位于防火墙或NAT设置之后,您可能还应将Passive设置为非零值,并确保通过打印$ @来检查构造函数是否失败.

my $ftp = Net::FTP->new(Host=>$host, Debug=>1, Passive=>1) || die $@;
Run Code Online (Sandbox Code Playgroud)

如果构造函数成功,您可能想要检查是否有任何其他方法失败:

$ftp->login($user, $pass) || die $ftp->message;
$ftp->cwd($path) || die $ftp->message;
Run Code Online (Sandbox Code Playgroud)

顺便说一下:如果您不确定是否使用了正确的主机参数,可以向Net :: FTP询问它尝试连接的主机:

print $ftp->host, "\n";
Run Code Online (Sandbox Code Playgroud)

如果仍然无效,请提供您的申请的详细输出.

希望这可以帮助.