C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.48595 の関連記事表示

<< 0 >>
■48595  Re[3]: VB.netで全角を含むURLのFTP接続について
□投稿者/ 魔界の仮面弁士 -(2010/04/09(Fri) 11:50:51)
    No48592 (いただっく さん) に返信
    >># そもそも 123.456.789.012 というアドレスが NG ですが、それは本題では無いので無視するとして。
    > もちろんサンプルIPなのでお気になさらずにお願い致します。
    IP なのに 255 を超えた値が記載されていたので、気になってしまいました。(^^;


    > MS製のIISならやはり「ftp://localhost/test/ああああ/いいいい」と全角のPATHを送信しても大丈夫なんですね。
    そうとも言い切れないと思います。IIS との間では ANSI が使われることになるため、
    たとえば中国語のファイル名やディレクトリ名を送受信する事はできません。
    http://support.microsoft.com/kb/332093/ja

    実際、当方環境で "ニイハオ" の漢字 2 文字({イ+尓};{好})を使ったファイル名を
    LIST コマンドで受信してみたところ、"?好.txt" を意味する 3F/8D,44/2E/74/75/74 の
    バイナリが受信されました。(ちなみに "ああ.TXT" では 82,A0/82,A0/2E/54/58/54。)


    >>> 3.そもそも「ftpRes.ResponseUri.AbsoluteUri」のURLで接続にいっているのでしょうか?
    >> 強いて言えば AbsoluteUri の方ですが、そもそも実際の FTP 処理では、%FF%FF…形式の文字列は使われていないはずです。
    > 「強いて」ということは、VB側でURLはAbsoluteUriだが、
    これは、No48541 の u1 / u2 変数でチェックしたときに、そのどちらでも通信が成功し、
    かつ、両者の AbsoluteUri が同一であったことからの推測です。(当然、OriginalString は異なる)

    > FTP処理をかける際には更に変換されているということですか。
    FtpWebRequest の内部実装を追ったわけではないので、実際の所はどうだか分かりませんが、
    少なくとも通信内容をキャプチャーしてみたところ、先のような結果が得られました。

    なお正確に言えば、先述した
    >> ←サーバーから "230" が返され認証成功。入力待ちになる。
    >> →クライアントから "LIST test/ああああ/いいいい" コマンドが渡される。≪ %FF%FF 形式では無い
    この部分(ログイン直後)に、クライアントから "OPTS utf8 on" というコマンドも送出されていました。
    サーバーからは未サポートを示す "501" が返されていたので、処理としては無視されたようですけれどね。


    > 最終的なやりとりは(RequestやResponse)は環境が異なっても上記みたいにやりとりされているんですね。
    > 勉強になりました。
    やりとりの内容については、Microsoft ネットワーク モニタでキャプチャできます。
    http://blogs.technet.com/netmon/

    FTP そのものの仕様については、RFC959、RFC2640 等で確認してみて下さい。


    > Requestする際は、FTPサーバの環境に変換した文字コードで
    > 送信する必要がある!ということですね。
    FtpWebRequest 以外の対処方法としては、Socket クラスで FTP クライアントを自力実装するとか。


    >>中には、指定していたパスが間違っていた場合にも空の一覧を返して、コマンド自体は正常とみなす実装もあるかも知れません。
    > パスが存在しない=空フォルダ と返しているのかも知れませんね。
    実際のところはどうでしたか? (私は CentOS の事を知りませんので、真偽を検証できません)
    明らかに存在しないフォルダ(というかディレクトリ)のパスを、意図的に指定する事は容易ですよね。
記事No.48516 のレス /過去ログ82より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -