トップ «前の日記(2015-03-02(Mon)) 最新 次の日記(2015-03-04(Wed))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2015-03-03(Tue) 曇って少し寒い

即席FTP

httpなら -m SimpleHTTPServer とかになるが、ftpはそこまで 簡単にはいかなかった。
適当に探して、python-pyftpdlib を apt-get。

from pyftpdlib import ftpserver
 
FTP_ROOT = "$DIR/"
ADDRESS = ("0.0.0.0", $PORT)
 
authorizer = ftpserver.DummyAuthorizer()
authorizer.add_anonymous(FTP_ROOT)
 
ftp_handler = ftpserver.FTPHandler
ftp_handler.authorizer = authorizer
 
ftpd = ftpserver.FTPServer(ADDRESS, ftp_handler)
ftpd.serve_forever()

$PORTは1024以上 ならユーザ権限で可能。
クライアントはanonymous ユーザでパスワードは適当。ダウンロードのみ。
以下、 参考にしたページ。

クライアント側。

$ ftp $HOST $PORT
Connected to $HOST. 
220 pyftpdlib 0.7.0 ready. 
Name ($HOST:root): anonymous 
331 Username ok, send password. 
Password: ***********
230 Login successful. 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp> ls
200 Active data connection established. 
125 Data connection already open. Transfer starting. 
-rw-r--r--   1 user group  153 Mar 03 01:38 $DATA
226 Transfer complete.
ftp> get $DATA
200 Active data connection established.
125 Data connection already open. Transfer starting.
226 Transfer complete.
153 bytes received in 0.000372 seconds (411290 bytes/s)
ftp> quit
221 Goodbye.

サーバ側。

$ python python-tempftp.py 
Starting FTP server
[]$CLIENT:$SRC_PORT Connected.
$CLIENT:$SRC_PORT ==> 220 pyftpdlib 0.7.0 ready.
$CLIENT:$SRC_PORT <== USER anonymous
$CLIENT:$SRC_PORT ==> 331 Username ok, send password.
$CLIENT:$SRC_PORT <== PASS ******
$CLIENT:$SRC_PORT ==> 230 Login successful.
$CLIENT:$SRC_PORT <== SYST
$CLIENT:$SRC_PORT ==> 215 UNIX Type: L8
$CLIENT:$SRC_PORT <== PORT $CLIENT,222,0
$CLIENT:$SRC_PORT ==> 200 Active data connection established.
$CLIENT:$SRC_PORT <== LIST
$CLIENT:$SRC_PORT ==> 125 Data connection already open. \
 Transfer starting.
$CLIENT:$SRC_PORT ==> 226 Transfer complete.
$CLIENT:$SRC_PORT <== TYPE I
$CLIENT:$SRC_PORT ==> 200 Type set to: Binary.
$CLIENT:$SRC_PORT <== PORT $CLIENT,159,21
$CLIENT:$SRC_PORT ==> 200 Active data connection established.
$CLIENT:$SRC_PORT <== RETR $DATA
$CLIENT:$SRC_PORT ==> 125 Data connection already open. \
 Transfer starting.
$CLIENT:$SRC_PORT ==> 226 Transfer complete.
[anonymous]@$CLIENT:$SRC_PORT "RETR $DIR/$DATA" completed=1 \
 bytes=153 seconds=0.002
$CLIENT:$SRC_PORT <== QUIT
$CLIENT:$SRC_PORT ==> 221 Goodbye.
[anonymous]@$CLIENT:$SRC_PORT Disconnected.

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。