- PR -

FTP接続PGで、Win→LinuxはOK、Linux→WinはNG。何で?

投稿者投稿内容
かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-09 13:30
FTPクライアントを作ったのですが、次の現象の原因が不明です。
考えられる原因は何なのでしょうか?

FTPクライアントをLinux上で動かし、
Tiny FTP Daemon(Win98)に接続しにいくと、
ユーザ名かパスワードが不正とのこと。

しかし、
FTPクライアントをWin98上で動かし、
vsFTP daemon(Linux)に接続しにいくと、
ログインできます。

プログラム上のバグなのでしょうか?
環境上に原因があるのでしょうか?
soluna
ベテラン
会議室デビュー日: 2004/06/15
投稿数: 59
投稿日時: 2004-07-09 13:52
引用:
プログラム上のバグなのでしょうか?
環境上に原因があるのでしょうか?


それを調べるのも、あなたの役割ではないですか?

デバッガでちゃんとプログラムを追いました?
追い辛いならば、ログを吐き出すなどして、
FTPが正しい手順で行われているか確認してください。

確かに、環境と言うこともあり得ましょうけど、それらを第三者に判断させるには、
あまりにも、情報が少なすぎます。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-07-09 13:52
引用:

FTPクライアントをLinux上で動かし、
Tiny FTP Daemon(Win98)に接続しにいくと、
ユーザ名かパスワードが不正とのこと。


こう言ってるのですから、単純にWindowsでのFTPユーザ名/パスワードに
ついてもう一度チェックされたらいかがですか?認証が通っていないだけ
のように見えますが。
かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-09 14:06
コマンドラインからのFTP接続は
双方向とも接続できます。

ユーザ名もパスワードもプログラム上の間違いはないです。
かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-09 14:10
書き忘れましたが、
ソケットで、"PASS " + password で送信したあとに帰ってくるメッセージが
530 Not authorized.
でした。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-07-09 14:12
現象からは、プログラムを起動しているアプリケーションの OS ではなく、FTP サーバの種類に依存しているように思えますが、頂いている情報から第三者が判断するのは大変難しいかと思います。
もうすこしきり分けが必要ではないでしょうか。
パケットキャプチャをしてみるとか。
http://www.ethereal.com/
http://www.packetyzer.com/

かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-09 15:58
ますます不明に陥ってきました。
パケットキャプチャしたのですが、次のとおりです

・ コマンドラインFTP(Linux → Win98)
FTP Response: 220-**********************
FTP Request: USER ******(一応伏せます)
FTP Response: 331 Give me your password
FTP Request: PASS ******(これも伏せます)
FTP Response: 230----------------------
FTP Request: SYST
FTP Response: 215 UNIX A N (HN)

・ 自作FTPプログラム(Linux → Win98)
FTP Response: 220-**********************
FTP Request: USER ******(上と同じであることを確認OK)
FTP Response: 331 Give me your password
FTP Request: PASS ******(上と同じであることを確認OK)
FTP Response: 530 Not authorized.

環境なのでしょうか???
かつや
ベテラン
会議室デビュー日: 2004/01/19
投稿数: 70
投稿日時: 2004-07-09 17:36
解決しました。

ユーザ名とパスワードを送る処理の時に、
userName = userName + "\r";
passWord = passWord + "\r";

とすることで、解決しました。

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