3

Perlスクリプト内でWindows組み込みFTPツールを使用してリンクのスループットを測定したいと思います。したがって、スクリプトは次のコマンドスクリプトを作成します。

open <ip>
<username>
<password>
hash
get 500k.txt
quit

その後、次のPerlコードを使用してコマンドスクリプトを実行します。

system(@args);
@args = ("ftp", "-s:c:\\ftp_dl.txt");
system(@args);

DOSボックス内でコマンドを実行すると、出力は次のようになります。

ftp> open <ip>
Connected to <ip>
220 "Welcome to the fast and fabulous DUFTP005 ftp-server :-) "
User (<ip>:(none)):
331 Please specify the password.

230 Login successful.
ftp> hash
Hash mark printing On  ftp: (2048 bytes/hash mark) .
ftp> get 500k.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 500k.txt (14336 bytes).
#######
226 File send OK.
ftp: 14336 bytes received in 0.00Seconds 14336000.00Kbytes/sec.
ftp> quit
221 Goodbye.

スループットを取得できるようにするには、その行を抽出する必要があります。

 ftp: 14336 bytes received in 0.00Seconds 14336000.00Kbytes/sec.

私はPerlにあまり詳しくありません。誰かがその線を取得する方法を知っていますか?

4

4 に答える 4

5

open in pipe モードのいずれかを使用します。

open($filehandle, "$command|") or die "did not work: $! $?";
while(<$filehandle>)
{
#do something with $_
}

またはバッククォートを使用します。

my  @programoutput=`$command`
于 2009-02-20T09:32:08.950 に答える
-2

タスクにより適したlibcurlを試して使用する必要があります。

使いやすいAPIがあります

于 2009-02-20T09:25:55.453 に答える