|目次|手順 0|1|2|3|A|B|C|D|E|F|G|H| I |J|K|L|M|N|O|P|Q|
作成日:2002年01月04日、更新日:2002年10月12日 作成:鷹の巣FTPクライアント機から、コマンド操作で匿名FTPサーバーよりファイルをダウンロードする方法を示します。
この資料は、匿名FTPサーバーの動作をより深く理解して頂く為に作成致しました。 又、FTPクライアント側にルータが存在する場合、コマンド操作により、ルータを越えてFTPサーバーの検証を実施出来ます。
anonymous(匿名)FTPサーバーにコマンド入力を行って、ファイルをダウンロードする方法を下図に示します。 Windows 2000のコマンドプロンプト画面(DOS窓の様な画面)より、コマンド操作したものです。 (「鷹の巣」のFTPサーバーは、 anonymous(匿名) FTPサーバーで、メールアドレスを要求する設定にしております。) 画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としております。
「鷹の巣」のFTPサーバー(匿名FTPサーバー)から、ファイルをダウンロードする例。
Microsoft Windows 2000 [Version 5.00.2195] (C) Copyright 1985-2000 Microsoft Corp. C:\>ftp sakaguch.com<-----------------------------------ftp コマンドを使用して、sakaguch.com へサービスポート21番より接続。 「-a」オプションは、使用しない。ftp.sakaguch.comでも可。 Connected to sakaguch.com. 220-************************************************ 220- Welcome to Tiny FTP Daemon /95 220- Version 0.5 220 ************************************************ User (sakaguch.com:(none)):anonymous<-------------------anonymous(匿名)FTPサーバーである為、「anonymous」と入力。 331 Give me your mail address as Password Password:user@example.com<------------------------------「guest」又は、メールアドレスを入力。入力した内容は表示されません。 230-------------------------------------------------------------- 230- Welcome! 230-------------------------------------------------------------- 230 Logged in. ftp>? <------------------------------------------------使用出来るコマンドを取得。 Commands may be abbreviated. Commands are: ! delete literal prompt send ? debug ls put status append dir mdelete pwd trace ascii disconnect mdir quit type bell get mget quote user binary glob mkdir recv verbose bye hash mls remotehelp cd help mput rename close lcd open rmdir ftp>remotehelp<----------------------------------------FTPサーバーから、使用出来るコマンドを取得。。 Windowsユーザーのみ使用可。「*」印は使用出来ない。 214-**** TinyFTPDaemon/95 Version 0.52d command lists **** * marked commands are not implimented. USER PORT STOR MSAM* RNTO NLST MKD CDU PASS PASV APPE MRSQ* ABOR SITE XMKD XCUP ACCT* TYPE MLFL* MRCP* DELE SYST RMD STOU* SMNT* STRU* MAIL* ALLO* CWD STAT XRMD SIZE REIN MODE MSND* REST XCWD HELP PWD MDTM* QUIT RETR MSOM* RNFR LIST NOOP XPWD No SITE Command allowed. 214 Help. ftp>pasv<----------------------------------------------pasvコマンドを直接入力してみる。注)3 Invalid command.<--------------------------------------無効のコマンドとされPASVモードに切り替わらない。 ftp>quote pasv<----------------------------------------quote コマンドを使用して、quote pasvと入力。注)4 227 Entering passive mode (vvv,xxx,yyy,zzz,12,103)<----PASVモードになると、サーバー機のIPアドレス(vvv.xxx.yyy.zzz)と サーバー側接続元ポート番号3175(=12×256+103)が表示される。 ftp>port vvv,xxx,yyy,zzz,156,65<-----------------------portコマンドを直接入力してみる。注)3 Invalid command.<--------------------------------------無効のコマンドとされPORTモードに切り替わらない。 ftp>quote port vvv,xxx,yyy,zzz,156,65<-----------------quote コマンドを使用して、quote port vvv,xxx,yyy,zzz,156,65と入力。注)4 ここに vvv,xxx,yyy,zzzは、クライアント機のIPアドレスであり、156,65は、 クライアント側接続先ポート番号40001(=156×256+65)を指定している。 200 Data port connected.<------------------------------PORTモードになると、FTPデータポートの接続が成立する。 ftp>ls -al<-------------------------------------------「ls -al」と入力して、ファイル一覧を取得。「dir」でも可。注)5 200 Data port connected. 150 Sending file list. d--------- 1 noone nogroup 0 Feb 10 12:39 . d--------- 1 noone nogroup 0 Feb 10 12:39 .. -r-xr-xr-x 1 noone nogroup 899 Feb 10 17:38 test1.txt -r-xr-xr-x 1 noone nogroup 1272 Feb 10 17:38 test2.bmp -r-xr-xr-x 1 noone nogroup 9522 Feb 10 17:38 test3.bmp 226 Transfer finished successfully. ftp: 290 bytes received in 0.02Seconds 14.50Kbytes/sec. ftp>ascii<---------------------------------------------テキストファイルをダウンロードする為、asciiモードにする。 200 Ascii mode ready ftp>get test1.txt<-------------------------------------テキストファイル名「test1.txt」を1個ダウンロードする。 200 Ascii mode ready mget test1.txt?y<--------------------------------------確認入力に「y」と入力する。 200 Data port connected. 150 ASCII file D:/test1.txt ready to send 226 Transfer finished successfully. ftp: 899 bytes received in 0.08Seconds 11.24Kbytes/sec. ftp>binary<--------------------------------------------バイナリファイルをダウンロードする為、binaryモードにする。 200 Binary mode ready ftp>mget *.bmp<----------------------------------------複数のバイナリファイル名「*.bmp」をダウンロードする。 200 Binary mode ready mget test2.bmp?y<--------------------------------------確認入力に「y」と入力する。 200 Data port connected. 150 BINARY file D:/test2.bmp ready to send (1272bytes) 226 Transfer finished successfully. ftp: 1272 bytes received in 0.11Seconds 11.56Kbytes/sec. mget test3.bmp?y<--------------------------------------確認入力に「y」と入力する。 200 Data port connected. 150 BINARY file D:/test3.bmp ready to send (9522bytes) 226 Transfer finished successfully. ftp: 9522 bytes received in 0.19Seconds 50.12Kbytes/sec. ftp>quit<----------------------------------------------ftp コマンドを終了し、FTP接続を切断する。 221 ************* Thank you! ****************** C:\>exit<----------------------------------------------Windows 2000のコマンドプロンプト画面(DOS窓の様な画面)を終了する。
注3~4は、Tiny FTP Daemon/95の掲示板で、2002年 4月25日20時55分に開発者であるBUBUさんから、教えて頂きました。 そのお陰で、このWebページを公開することが、できました。BUBUさんに深く感謝致します。ありがとうございました。
Vector(http://www.vector.co.jp/)さんのFTPサーバーにコマンド入力を行って、ファイルをダウンロードする例を下図に示します。 URLがhttp://www.vector.co.jp/ である場合、FTPサーバーは、一般に ftp.vector.co.jp の様なフルドメイン表記のホスト名になっています。
Vectorさん(匿名FTPサーバー)から、ファイルをダウンロードする例。
C:\>ftp ftp.vector.co.jp Connected to ftp.vector.co.jp. 220 ftp.vector.co.jp NcFTPd Server (licensed copy) ready. User (ftp.vector.co.jp:(none)):anonymous 331 Guest login ok, send your complete e-mail address as password. Password:user@example.com 230-You are user #351 of 2048 simultaneous users allowed. 230- 230 Logged in anonymously. ftp>pasv Invalid command. ftp>quote pasv 227 Entering Passive Mode (210,155,146,28,239,11) ftp>port Invalid command. ftp>quote port 218,45,169,116,4,25 200 PORT command successful. ftp>ls -al 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. drwxr-xr-x 2 ftpuser ftpusers 512 Jun 12 1996bin drwxr-xr-x 2 ftpuser ftpusers 512 Jan 28 1997 dev drwxr-xr-x 2 ftpuser ftpusers 512 Apr 8 1998 etc drwxr-xr-x 4 ftpuser ftpusers 512 Jan 27 1997 mirror drwxrwxr-x 17 ftpuser ftpusers 1024 Apr 25 04:04 pack drwxr-xr-x 3 ftpuser ftpusers 512 Jun 12 1996 usr 226 Listing completed. ftp: 370 bytes received in 0.02Seconds 18.50Kbytes/sec. ftp>cd bin 250 "/bin" is new cwd. ftp>ls -al 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. ---x--x--x 1 ftpuser ftpusers 15148 Jun 12 1996 compress ---x--x--x 1 ftpuser ftpusers 60620 Jun 12 1996 gzip ---x--x--x 1 ftpuser ftpusers 17500 Jun 12 1996 ls ---x--x--x 1 ftpuser ftpusers 141772 Jun 12 1996 tar 226 Listing completed. ftp: 249 bytes received in 0.02Seconds 12.45Kbytes/sec. ftp>quit 221 Goodbye. C:\>
FTPサーバーのコマンド操作(一般) Tiny FTP DaemonのHELPファイルより、コマンド操作に関する部分を抜粋しました。下図をご覧願います。 (Tiny FTP Daemon/95の掲示板で、2002年 4月25日開発者であるBUBUさん転載許可を頂きました。ありがとうございました。) 画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としております。
Tiny FTP DaemonのHELPファイルより抜粋
1) クライアントの起動とログイン MS-DOSプロンプトを起動します。そこで、以下のように入力します。 C:>FTP FTP>open 127.0.0.1 Connected to 127.0.0.1. 220-******************************************** 220- This is Tiny FTP Daemon/95 220- 220- user anonymous for ready for guest login. 220- 220 ******************************************** User (127.0.0.1:(none)):登録したユーザー名 331 Give me your Password Password:登録したパスワード 230--------------------------------- 230- Welcome to Tiny FTP Daemon 230--------------------------------- 230 Logged in. FTP> 2)ファイル一覧の取得 ftp>dir 200 Data port connected. 150 Sending file list. -rwxrwxrwx 1 anonymous sysgrp 66 May 21 15:23 system.ftp -rwxr-xr-x 1 system sysgrp 4527824 May 23 14:36 123456789.dat drwxr-xr-x 1 system sysgrp 0 May 28 21:34 pub drwxr-xr-x 1 system sysgrp 0 May 28 21:36 work 226 Transfer finished successfully. 5856 bytes received in 6.98 seconds (0.84 Kbytes/sec) ftp>
Tiny FTP Daemonの「実装しているFTPコマンド」
Tiny FTP DaemonのHELPファイルより、「機能リファレンス」の「基本機能」の「実装しているFTPコマンド」を下表に抜粋しました。 (Tiny FTP Daemon/95の掲示板で、2002年 4月25日開発者であるBUBUさん転載許可を頂きました。ありがとうございました。)
「このプログラムでは、RFC959に定義される機能のうち、現在でも比較的よく使われている機能だけを抜粋して実装してあります。」 とのことです。
下記の実装しているコマンドの使用方法は、過去からの贈り物「FTP~前編」と過去からの贈り物「FTP~後編」をご参照願います。
| FTPコマンド | 解説 | 注 |
|---|---|---|
| NOOP | なにもしない | - |
| USER | ユーザー名の入力および変更 | - |
| PASS | パスワードの入力 | - |
| CWD | カレントディレクトリの変更 | - |
| XPWD/PWD | カレントディレクトリの表示 | - |
| CDUP | ひとつ上のディレクトリへ移動 | - |
| LIST | 自由な形式でのファイル一覧 | - |
| NLST | コンピュータ処理可能な形式でのファイル一覧 | - |
| RETR | ファイルのget(ダウンロード) | - |
| STOR | ファイルのput(アップロード) | - |
| STOU | ユニークな名前でファイルをput(アップロード) | - |
| APPE | ファイルへのデータ追加 | - |
| DELE | ファイルの削除 | - |
| XMKD/MKD | ディレクトリの作成 | - |
| XRMD/RMD | ディレクトリの消去 | - |
| TYPE | 送信モードの変更 | (*1) |
| STRU | データ構造の変更 | (*2) |
| RNFR/RNTO | ファイル名の変更 | - |
| QUIT | ログアウト | - |
| SYST | システム名の送信 | - |
| HELP | FTPdのヘルプを送信 | - |
| PASV | パッシブモードへ変更 | - |
| PORT | データポート通知 | - |
| ABOR | ファイル送信の中止 | - |
| SITE | 拡張コマンド | - |
| REST | ファイル受信の再開(レジューム) | (*3) |
| SIZE | ファイルサイズを送信 | (*4) |
2. 拡張コマンドの管理者コマンドは、省略。
3. 拡張コマンドのユーザーコマンドは、省略。
同じ様に実施して上記と異なった結果が出た場合は、実施結果を「掲示板」にご投稿をお願いします。