RSAもいいけど楕円曲線暗号もね。 というわけで、Rubyで素数位数の群をもつ楕円曲線を生成するスクリプトを組んでみました。 |
まだまだSSLを思考錯誤中です。 「SSL/TLS でアクセスしてみよう (2)」に記載されているサンプルについて 注意して頂きたい事があります。 HTTPSに接続後のサーバ証明書のsubjectとissuerを出力する部分で、 メモリーリークが発生する様です。 具体的には、 132: str = X509_NAME_oneline(X509_get_subject_name(server_cert), 0, 0); と 135: str = X509_NAME_oneline(X509_get_issuer_name(server_cert), 0, 0); の返り値strそれぞれを OPENSSL_free( str )すればメモリーリークは直りました。 OpenSSLのバージョンは0.9.7aです。 OpenSSLドキュメントを見ても該当関数の事が記載されていなかったので 内部でアロケートしているかどうかソースを追っかけないと判りませんでした。 |
>>3882 ニッタン > HTTPSに接続後のサーバ証明書のsubjectとissuerを出力する部分で、 > メモリーリークが発生する様です。 ありがとうございます。 The functions X509_NAME_oneline() and X509_NAME_print() are legacy functions ということなので、X509_NAME_oneline() を使うのはやめて、 X509_NAME_print_ex() に変更しました。XN_FLAG_RFC2253 に したのは特に意味はありません。 # http://x68000.q-e-d.net/~68user/net/ssl-2.html |
ごもっとなご意見です。いろいろ推測させてしまったようです。 すみませんでした。 68userさんの推測とおり、 ・SSL対応のWebクライアントを作っています。 ・(Open)SSLの実装では特定の暗号化ロジックを使わないようしたい。 公開鍵の暗号化としてRSAを使いたいが有効鍵ビットは512としたい 共有鍵の暗号化としてRC4を使いたいが有効鍵ビットは40としたい これまでに以下の情報をご提供いただきました。 1.使用したい暗号化ロジックは SSL_CTX_set_cipher_list()で指定 2.暗号化方式として特定のロジックを使用禁止にしたいのであれば コンパイルオプションを設定すればよい について、有効鍵ビットを意識した設定は可能なのでしょか いろんなサンプルを見ましたが、方式の設定はあっても鍵長まで意識 したものが見つかりませんでした。 また、SSL_CTX_set_cipher_list()での設定は必須になるのでしょうか。 なかなかイメージがわきません。よろしくお願いします。 |
>>3884 jeiu > 公開鍵の暗号化としてRSAを使いたいが有効鍵ビットは512としたい > 共有鍵の暗号化としてRC4を使いたいが有効鍵ビットは40としたい では http://www21.ocn.ne.jp/~k-west/SSLandTLS/rfc2246-Ja.txt の RSA_EXPORT_WITH_RC4_40_MD5 で決まりでしょう。RSA かつ RC4 の 40bit となればこれしか選択肢がありません。 「RSA の鍵長 512bit 以下」という要件についてですが、これは 上記 RFC の 7.4.3. ServerKeyExchangeメッセージ ServerKeyExchangeメッセージは (略) 以下の鍵交換方式で使用される。 RSA_EXPORT (サーバ証明書の公開鍵が512ビットより長いとき) (略) 注: 現在の米国輸出法では、米国から輸出したソフトウェアにおいては、512 ビットより長いRSAのモジュラスを鍵交換において使用してはならない ことになっている。このメッセージを送信した場合、証明書内に含まれ ている512ビットより長いRSA鍵は、RSA_EXPORT鍵交換方式用の、512ビット 以下の長さを持つ一時的RSA鍵に署名するのに使用される。 で自然とクリアできます。 結局、ciphers(1) に SSL_RSA_EXPORT_WITH_RC4_40_MD5 EXP-RC4-MD5 とあるので SSL_connect() の前に if ( SSL_CTX_set_cipher_list(ctx, "EXP-RC4-MD5") == 0 ){ /* error */ } という処理を入れればよいでしょう。 |
68userさんのサイトで勉強させてもらってます。 http://x68000.q-e-d.net/~68user/net/rfc.html こちらのページの、POPの「日本語訳」のところがリンクが失敗してる ようですので、お知らせしておきます。 |
>>3886 kawa > http://x68000.q-e-d.net/~68user/net/rfc.html > こちらのページの、POPの「日本語訳」のところがリンクが失敗してる > ようですので、お知らせしておきます。 修正しました。ご連絡ありがとうございました。 |
自前parseルーチンで以下の様な処理をしています。 foreach(split(/&/, $query)){ my($name, $value) = split(/=/, $_); 〜日本語処理とかお約束の処理〜 # %FORMに格納 if(exist $FORM{$name}){;#既に以前の$nameが有れば(2回目以降) push($FORM{$name}, $value);#@{$FORM{$name}}の配列に格納 }else{ $FORM{$name} = $value;#初めての出現ならば通常通りに格納 } } 細かい部分は省略してますが、例えば checkbox などで、 chbox1&val1&chbox1&val2&chbox1&val3 の様なデータが来た場合、 $ALL_VALUE = $FORM{chbox} . " @{$FORM{chbox}}"; として、 $ALL_VALUE = 'val1 val2 val3' となる事を確認しています。 しかしなぜか、元のデータが複数の時の動作が理解できないのですが、 自分の理解が甘いような気もするので、ぜひとも動作の解説をしもらえない でしょうか? 以下は確認用のサンプルです。2行目のコメントを外して違いを確認ください。 データの内容によって結果が違います。 変数の内容が判りやすいように print 文を入れています。 $query=qq(cbox1=1&cbox1=2&cbox1=3&cbox2=1&cbox2=2&cbox2=3); #$query=qq(cbox1=1&cbox1=2&cbox1=3&cbox2=a&cbox2=b&cbox2=c); foreach(split(/&/, $query)){ my($name, $value) = split(/=/, $_); print qq($name=[$value]\n); if(exists $FORM{$name}){ push(@{$FORM{$name}}, $value); print qq( ->push:<$name>=[$value] count:). $#{$FORM{$name}} . qq(\n); }else{ $FORM{$name} = $value; } } print qq(Result1:[$FORM{'cbox1'} @{$FORM{'cbox1'}}]\n); print qq(Result2:[$FORM{'cbox2'} @{$FORM{'cbox2'}}]\n); 無名配列が $value の内容によって識別できていないように見えます。 Windows版とLinux版のそれぞれ 5.6.1 で確認しました。 |
書き忘れましたが perl でのお話です。 |
>>3888 スナフキン $query=qq(cbox1=1&cbox1=2&cbox1=3&cbox2=1&cbox2=4&cbox2=5); foreach (split(/&/, $query)){ my($name, $value) = split(/=/, $_); print qq($name=[$value]\n); if (exists $FORM{$name}){ push(@{$FORM{$name}}, $value); print "\@{$FORM{$name}}=@{$FORM{$name}}\n"; } else { $FORM{$name} = $value; } } print "\@1=@1\n"; cbox1=[1] cbox1=[2] @{1}=2 cbox1=[3] @{1}=2 3 cbox2=[1] cbox2=[4] @{1}=2 3 4 cbox2=[5] @{1}=2 3 4 5 @1=2 3 4 5 というわけで、最初のループで $FROM{$name} には 1 が入り、 @{$FORM{$name}} はシンボリックリファレンスと解釈され、結局 @1 に push しているわけです。 結局は一度目のループとそれ以降のループを分けず、常に push(@{$FORM{$name}}, $value); すればよいと思いますが、そもそも何をやりたかったのかによりますかね。 |
!!!なんとなるほど!シンボリックリファレンスと解釈されたとは・・・ すばやい回答大変助かりました。ありがとうございます。 このルーチンはいくつかある他のプログラムの一部なんですが、既に$FORM{〜} でアクセスする箇所が沢山有ったので、それらを変更する事なくという部分に こだわりすぎました。 cgi-lib.pl とかを見るとparse時に \0 をセパレータにしてスカラーに入れて いますが、そうではなく同名変数の配列にぶち込んじゃおうと思ったのですが 他の方法をかんがえてみます。 |
超初心者の質問でごめんなさい。 コマンドを入力すると、Command not found って、表示されるんです。 スペルは間違っていないのに。何が原因なのでしょうか? また、コマンドを入力した時に、値段のような文字が、ずらっと表示される事が あります。例:\245\242\245\257\245\273\245\271\270\242\244\254\244\242。 このようなことが起きる原因は、何でしょうか? 対処方法を教えて下さい。お願い致します。 |
>>3892 じぇぃじぇぃ ネット上の文字のやりとりだけで環境を把握するのがちょっと大変そうですが…。 > コマンドを入力すると、Command not found って、表示されるんです。 結論から言うと、path変数が正しく設定されていないのが原因とは思いますが…。 とはいえ即解決には至れないので、まず回答にあたって次を教えてもらえますか? ・コマンドを入力するまでにどんな手順を踏むように指示されている? ・それに対しコマンドを入力するまでに実際にはどんな手順を踏んでいる? ・コマンド名は何? > コマンドを入力した時に、値段のような文字が、ずらっと表示される事があります。 これも次を教えてください。 ・使っている機器はPC? ・WindowsからTelnetやTeraTermなどを実行して開いたウィンドウで起こっている? ・それともPC上では直接Solarisやlinuxが動いていてそこで起こっている? ・機器はPCではなく大学の研究室かどこかのワークステーション? ・機器はワークステーションではなくX端末? なお、この書き込みに関係なくすでに解決した場合でも、何をどうしたらうまく できたのか、必ずここに書き込みしてください。 とりあえず今回は、質問するというだけでも一苦労だったとは思いますが、 回答する側もスムーズかつ効率的に解決する技術を習得しようとしている面も あるので、質問する側としてもその時点でわかっていることをできるだけ きちんと伝えることが大切かと思います。ぜひ実践していってください。 # まあそうは言っても、何が前提で、伝えるべき情報がどれなのかがわからなくて # 余計困っているんだとは思いますが |
ネットワークプログラミングの基礎知識に 「*BSD で kqueue・kevent を使ってみよう」 http://X68000.q-e-d.net/~68user/net/c-kqueue-1.html を追加しました。 >>3892 じぇぃじぇぃ > コマンドを入力すると、Command not found って、表示されるんです。 こちらもご参考に。 http://X68000.q-e-d.net/~68user/unix/pickup?Command+not+found |
has 様。 ご丁寧なお返事ありがとうございます。 ・コマンドを入力するまでにどんな手順を踏むように指示されている? ・それに対しコマンドを入力するまでに実際にはどんな手順を踏んでいる? →サーバーにログインして、プロンプトを表示させる。 (ここまではOK)その後、以下のような操作(コマンドの入力)を 実行しています。 nslookup www.○○○○○○.ne.jp ↓ (見つからない) ↓ find /usr/bin -name nslookup -print ↓ (見つからない) ↓ find /usr -name nslookup -print ↓ (見つからない) ・コマンド名は何? →nslookup ・使っている機器はPC? →Windows Xp |
追記。 ・機器はPCではなく大学の研究室かどこかのワークステーション? →自宅PCです。 ・機器はワークステーションではなくX端末? →ワークステーション・X端末とは何でしょうか?? ほんとに、まぬけな答えをしてたら、ごめんなさい。 よろしくお願い致します。 |
>>3896 じぇぃじぇぃ 困っている内容: Windows XPのPCから[telnet等のソフト]で[UNIX系のOS]マシンにログインし 「nslookup www.○○○○○○.ne.jp」を実行したが「Command not found」 と表示され正しく実行できない([]内は未だ不明)。 さらに教えてください。 1.nslookupが実行できない理由を調べる (ログイン先のマシンにnslookupコマンドが存在するか) (a)OSに依存しない確認 ・ログイン先のマシンはどこのもの?(学校?自宅?レンタル?) ・ログイン先のマシンでnslookupが実行できた人は?できないのは1人だけ? (b)OSを特定してどこにあるか推定 ・「uname -a」の実行結果は? 2.メッセージが正しく表示できない原因を調べる (1)文字コード種類を推定する 「\???」は3桁の8進数であり、質問されたメッセージはEUCと思われる。 (アクセス権があ) (2)リモートマシンでの言語設定を確認する 「env | grep LANG」の実行結果は? なおワークステーション・X端末については、別の機会としましょう。 我慢できなければ是非google等で調べてみてください。 |
>>3895 じぇぃじぇぃ findコマンドでnslookupコマンドを検索されたようですが、 ここでの「見つからない」は、findコマンドが見つからなかったのか findの結果、nslookupが見つからなかったのか判らないですね。 こういう場合は、実行ログを貼り付けた方が伝わり易いですよ。 |
68user殿 ご回答ありがとうございます。返事がおくれて失礼しました。 しつこいようですがまた質問をさせてください(これで最後にします)。 教えていただいた暗号スイートですが、SSL_CTX_set_cipher_listで 複数指定はできないのでしょうか(リストというからには複数できるような...)。 |
>>3899 jeiu > SSL_CTX_set_cipher_listで複数指定はできないのでしょうか できます。マニュアル読んでますか? >>3880 68user で複数指定する例をあげていますし、さらにそこで > 書き方は OpenSSL のマニュアル ciphers(1) に載っています。 とも書きました。ciphers(1) には The cipher list consists of one or more cipher strings separated by colons. とあります。 なのにこういう質問が出てくるのはなぜですか? |
不要かもしれませんが結果報告です。 受け取ったデータを一次ファイルに格納して再読み込みする仕組みだったので、 配列に格納せず他のデータをタブで区切って追加させて、再読み込み時に my($name, $value)=split("\t", $record, 2); と split オプションを追加して、複数のデータを処理させましました。 cgi-lib.pl では \0 で、この掲示板では "," で区切っているので、別の方法を と思いましたが、変更箇所を最小限にするために結局この形にしました。 リファレンスは苦手なんで敬遠してましたが、これをきっかけにまじめに勉強 しようと思います。助言ありがとうございました。 |
68user殿 失礼しました。 日本語訳のページをのぞいていました。 「コロンで分離する」と理解しました。 |
こんにちは暑中お見舞い申し上げます。 覚えているかどうかは分かりませんが 今から7年前くらいにNETで多大な迷惑を おかけしたものでございます。当時CGIって何ですか? とか言っていた私も今では大手プロバイダでシステム いじってたりします・・・。玉に誰にも聞けない初歩的(?) な事があると、何故か68user様のサイトを参考にしてしまい 頭をすっきりさせているしだいであります。ずっと変わらず 存在しているサイトというのは私にとってとても貴重な物でして 上手く言えなくて申し訳ございませんが どうもありがとうございます。これからも利用させていただきたく存じます。 掲示板の書き込み内容としてそぐわないのは重々承知でございますが 他にコンタクトをかける手段を持ち合わせておりませんもので ご迷惑をおかけいたします。 失礼いたします。ニンニン。 |
>>3903 かりり お久しぶりです。お元気そうでなによりです。SEGA BBS で 遊んでたのは 7年も前なんですねぇ。 > CGIって何ですか? は忘れましたが、「タバコを吸って地球温暖化になったらどう するんですか?」と言われて困ってしまったのはよく覚えています。 IT 関連の職につかれましたか。ちなみにわたしは SE なのか プログラマなのかよくわからんのですが、とりあえず Perl や C や Oracle や Pro*C や PL/SQL や Java などと たわむれる 毎日です。 「ここが間違ってる」というご指摘や「もっとここを詳しく説明しろ」 とかいうリクエストがありましたら、遠慮なくどうぞ。 |
「UNIX の部屋」 http://X68000.q-e-d.net/~68user/unix/ を更新しました。 |
>>3892 じぇぃじぇぃ その後いかがでしょうか。 >>3893 has にも書いたとおり、他の人に聞いてなんとかなったのならそれはそれで まったく構わないのですが、何をどうしたかの報告が欲しいんです。 |
HP-UX11.00でPerlでシェルスクリプトを書いています。 Perl4なのですが、Perlでの置換について教えてください。 不等号で囲まれた文字列「<aaa.bbb@test.co.jp>」から 不等号だけを取り除いた文字列を取り出したいのですが 上手くいきません。 -------------- #!/usr/contrib/Q4/bin/perl # $addr="\<aaa.bbb\@test.co.jp\>"; $addr=~ s/<//g; $addr=~ s/>//g; print "$addr\n"; exit 0; ---------- この場合だと、置換処理を2回行わなければなりません。 1回で終わらせたいのですがごうすればよいでしょうか。 -------------- #!/usr/contrib/Q4/bin/perl # $addr="\<aaa.bbb\@test.co.jp\>"; $To=~ s/([^<>]?)+?/$1/g; とか $addr=~ s/^<([^<>]?)+?/$1/g; exit 0; ---------- |
>>3907 さいさん > HP-UX11.00でPerlでシェルスクリプトを書いています。 Perl で書いたスクリプトは Perl スクリプトと呼びます。sh や csh などのシェルが解釈するスクリプトがシェルスクリプトです。 > 1回で終わらせたいのですがごうすればよいでしょうか。 perl4 で動くかどうかはわかりませんが、perl5 では以下の どれを使ってもうまくいきました。 $addr =~ s/(^<|>$)//g; $addr =~ s/[<>]//g; $addr =~ s/^<(.*)>$/$1/; $addr =~ s/<(.*)>/$1/; |
いつもこのHPにお世話になっている者です。 この6月に会社の社内ネット担当になり、NW1年生になりました。 今はコマンドプロンプトやらTelNetをいじりながら勉強中です。 今日も自宅に戻ってから、 Windows98環境のコマンドプロンプトでパチョパチョ叩いて勉強していました。 画面がスクロールできなく小さいなと思い、 ツールバーの画面最大化ボタンを押してみたら、大変なことに!! 最大化の画面からツールバーが表示できる術を知らず、画面が戻らなくなりました。 EXITで一度ログアウトしてから再立上してみたのですが、 最大画面のままで、、 元の画面に戻すコマンドや、又はコマンド指示以外に元に戻す方法を教えて下さい。 どうぞ宜しくお願い致します。 |
Windows には詳しくないので「コマンドプロンプト 最大化 戻す」で 検索したところ、 http://forum.nifty.com/fpcu/top/doslog01/0896.htm > 通常、Alt+Enter(Altキーを押しながらEnterキーを押す)で戻ります。 だそうです。試してみてください。 |
alt+enterはコマンドプロンプトというよりも 最大化した状態のアプリケーションを戻すようなイメージで使えます。 |
>>3908 68user >> 1回で終わらせたいのですがごうすればよいでしょうか。 >perl4 で動くかどうかはわかりませんが、perl5 では以下の >どれを使ってもうまくいきました。 > $addr =~ s/(^<|>$)//g; > $addr =~ s/[<>]//g; > $addr =~ s/^<(.*)>$/$1/; > $addr =~ s/<(.*)>/$1/; Perl4でも上記のどれを使っても上手くいきました。 |
はじめまして 最近、UNIXをさわるようになって、勉強中の身です。 このページでいろいろ勉強させて戴いています。 クーロンの設定で教えて頂きたいのですが、 (1)0 0 * * * /opt/cs/bin/logdel.sh > /dev/null 2>&1 (2)0 0 * * * /opt/cs/bin/logdel.sh > /dev/null (1)と(2)の動作の違いは、なんのなのでしょうか? 標準出力と標準エラー出力の部分を調べたのですが、イマイチ 理解できていません。 こんな質問で申しわけないのですが、ご教授願います。 |
はじめまして。 Apacheについて質問といいますが疑問なのですが、mod_sslを使用してssl化した場合 と、そうで無い場合で、Apache(厳密にはブラウザからの表示)が極端に遅くなると 言うことは考えられるでしょうか? 現在はDebian GNU/Linux にてApt-getでインストールしたApacheを使用している のですが、Solarisにソースコードからmod_sslを使用してssl化したApacheを 導入したところ、ローカルからの表示が極端に遅くなりました。(表示に1分以上かかる) Debian GNU/Linuxで使用時と最も違う点はssl化した点と、VirtualHostの数を2つから 4つに増やしたことの2点なのですが、あまりに遅いためお尋ねする次第です。 Solaris側のApacheはSSLを有効にしての起動ではありません。 環境は以下になります。 Debian GNU/Linux(woody)+Apache(apt-getにてインストール) Solaris9_x86+Apache1.3.31+mod_ssl 基本的に両方ともDSOを有効にし、現在は全く同じモジュールをロードして使用して います。httpd.confはVirtualHostの記述、およびSolaris側にはssl関連の記述が ある以外はほぼ同じと思われます。 また、errorlogを確認したのですが、特になにも記述はありませんでした。 何か情報等ございましたらお教えいただきたい次第です。 |
はじめまして。。 簡単かもしれませんが是非、識者の方のご助言をお願いします。 AIX4.3.2でlhaコマンドを利用出来るようにしたいのですが 方法を教えて下さい。 AIX4.3.3では利用できるものを見つけたのですが、、、 宜しくお願いします。 |
はじめまして。 68user様のPerlでFTPクライアントを作るページを参考にさせていただき、 FTP転送するプログラムを書いたりしています。 その中でFTPコマンドの NLST のレスポンスで 550 が返ってくるかどうかで ファイル存在チェックなどしたりしているのですが、 最近、OSをLinuxのRedHat7JからRedHat9へ変えた所、 FTPサーバが vsftpd-1.1.3-8 になり、NLST の結果が 5 で始まらない結果しか 返って来なくなりました。 Windows2k付属ftpのデバッグモードでサーバレスポンスを見ると次のような感じです。 ftp> ls aaa ---> PORT ###,###,###,###,###,### 200 PORT command successful. Consider using PASV. ---> NLST aaa 150 Here comes the directory listing. 226 Directory send OK. ftp> ※aaaは適当な存在しない適当なファイル名です。 これを見る限り vsftp サーバ側の反応が前と異なるということですよね。 この為ファイルの存在チェックができなくなってしまいました。 私の思いつく対策としては、 1.レスポンスコード(550)で判別ではなく、データポートに入ってくる値で存在チェックに変える。 2.NLST でなく quot SIZE や quot MDTM で判定(この場合 * ワイルドカードが使えなくなります) 3.vsftp のソースから変えてコンパイルする。 (該当個所がみつかるかどうか、変えて他に影響がないかどうかが問題です) 4.wuftp に戻す。 やっぱりワイルドカードは使いたいので4が一番手っ取り早いでしょうか。 サーバ側のconfファイルの設定などで前のNLSTのレスポンスに戻せたら一番いいのですが、 マニュアルを見た感じでは無理そうですし(英語は苦手なので間違いがあるかもしれませんが) サーバのレスポンスが変わってしまった理由や本来はどうあるべきなのかなど なんでもいいですので、この件についてご意見をお聞かせ願いたいと思います。 よろしくお願いします。 |
早速ご返答頂きまして、まことに有り難うございます。 実行したところ、最大化した画面が戻りました。 (もう一回実行すると最大化しました。) とても助かりました有り難うございます。 これからも宜しくお願い致します。 -------------------------------------------------------------------------------- No. 3911 # sorame 2004/08/04 (水) 00:56:13 alt+enterはコマンドプロンプトというよりも 最大化した状態のアプリケーションを戻すようなイメージで使えます。 -------------------------------------------------------------------------------- No. 3910 # 68user 2004/08/03 (火) 23:07:49 Windows には詳しくないので「コマンドプロンプト 最大化 戻す」で 検索したところ、 http://forum.nifty.com/fpcu/top/doslog01/0896.htm > 通常、Alt+Enter(Altキーを押しながらEnterキーを押す)で戻ります。 だそうです。試してみてください。 |
>>3913 初心者 > (1)0 0 * * * /opt/cs/bin/logdel.sh > /dev/null 2>&1 > (2)0 0 * * * /opt/cs/bin/logdel.sh > /dev/null (1) は標準出力と標準エラー出力を /dev/null に捨てます。 (2) は標準出力だけ /dev/null に捨てます。 cron とからめて考えると、(実装にもよるでしょうが) 標準出力に 出力されたものはメールで通知、標準エラー出力への出力はログに 記録されるので、メールで通知せず、ログにも記録しない場合は (1) がよいでしょう。 なお、> /dev/null 2>&1 は 1>/dev/null 2>&1 と等価であり、 - 2>&1 で 2 (標準エラー出力) を 1 (標準出力) に - 1>/dev/null で 1 (標準出力と標準エラー出力) を /dev/null に と考えるとわかりやすいかもしれません。 >>3914 立神梢一 とりあえず Solaris9_x86+Apache1.3.31 だけで試してみるべきでしょう。 もしそれが遅ければ名前解決が原因かも、などと切り分けられるので。 後は LogLevel や SSLLogLevel を debug にして、どこで止まっているのか 確認してみるのもよいかもしれません。 >>3915 いはら > AIX4.3.2でlhaコマンドを利用出来るようにしたいのですが よくわかりませんが、AIX4.3.3 の lha はどうやって入手したのですか? AIX は知りませんが、フリーソフトのバイナリを配布しているサイトが あるのならそこから入手、なければソースからコンパイルとなるでしょう。 http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/ というのがありますが、どの程度信用できるサイトなのかはわかりません。 >>3916 コノテガシワ > FTPサーバが vsftpd-1.1.3-8 になり、NLST の結果が 5 で始まらない結果しか > 返って来なくなりました。 > サーバのレスポンスが変わってしまった理由や本来はどうあるべきなのかなど わかりません。ftp は実装依存部分が多く、どれが正しいのか悩む部分は多いで しょうが、調べてみても明文化された規格が存在しないというケースが多く、 わたしは深く考えないように努めています (世の ftp クライアントの作者の 方々はよくやるよなぁと感心します)。 例えば最近の ProFTPD なぞ NLST のオプションを弾くようになりましたし。 http://www.miloweb.net/pastbbs/0008/2281.html 対処は目的にもよりますが、汎用的なつくりを優先させるなら レスポンスコード (550) で判別し、もしエラーでないならデータポートに 入ってくる値で存在チェックする がよいと思います。自分用のお手軽ツールで、とりあえず動けばいいや的な考えで あれば、それこそ一番お手軽と思う方法がよろしいかと。 |
>> 3918 ご返答ありがとうございます。 他のサイトでもFTPクライアントのトラブルも拝見してきました。 どうやらサーバによって NSLT に使えるパラメータやそのレスポンスが違うのは、 RFC に定められた動き以外は FTPD(サーバプログラム)独自の+α機能 ということのようですね。(違っていたらご指摘下さい) だから、クライアントを作る人も応用が利くように 色んなサーバを調べて対応した方が良い物が出来るということですね。 今回の場合、実はあるプロジェクトの開発用のマシンでの話でした。 開発環境だから本番と同じにした方がいいかもしれない・・・ でも、今後のことを考えると新しいOSで新しいFTPサーバでも 対応した存在チェックが出来るようにした方がいいかもしれない・・・ と少し悩んでいました。 今回の場合、それほど汎用的な作りを重視する必要は無いのですが、 自分の技術向上のためにも汎用的な作りにする方向で検討してみます。 ありがとうございました。 |
回答ありがとうございました。 > > AIX4.3.2でlhaコマンドを利用出来るようにしたいのですが > よくわかりませんが、AIX4.3.3 の lha はどうやって入手したのですか? レスして頂いた内容のサイトより入手しました。 > AIX は知りませんが、フリーソフトのバイナリを配布しているサイトが > あるのならそこから入手、なければソースからコンパイルとなるでしょう。 > http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/ > というのがありますが、どの程度信用できるサイトなのかはわかりません 頑張って捜してみます。 |