68user's page 掲示板

Prev< No. 3346〜3380> Next  [最新発言に戻る] [過去ログ一覧]
No. 3346 # 4lj [E-mail] 2003/09/24 (水) 19:02:31
はじめまして。私は普段、

find ./ -type f | xargs grep -n "foo"

とかやってますが。後はお好みでgrepに-iつけてみたり。

No. 3347 # pranky [E-mail] 2003/09/25 (木) 01:06:50
こんばんは初めまして。pranky と申します。
ここで、いつもネットワークプログラミングなどを勉強させて頂いております。

今回 TCP で実装してあった双方向のプロトコルをファイアウォールにも
対応させなくてはならなくなり、困っているのでご相談させて下さい。
今のところ考えているのは、現在の TCP のプロトコルを HTTP の上に乗せて
HTTP プロキシに対応する事でファイアウォールを越えようと考えています。

開発言語は Perl を使用しておりますので、テスト的に HTTP:Daemon モジュールを
使用してサーバを構築し、LWP::UserAgent でクライアントとして動作を
させてみました。

1. 基本的に既存のプロトコルが Peer to Peer なので、起動時にクライアント側から
サーバ側へ HTTP 接続をし、その起動中はつないだままにしておきたい。

2. 接続中はクライアント側からもサーバ側からも数KB 位のデータのやりとりを
双方向で行いたい。

この上記2 点は両立するものでしょうか?
上の 1. は keepalive を行えばできそうな感じはしますが、下の 2. はできる
のでしょうか。

通常のブラウザを見ていると
1. サーバ側へファイル要求
2. サーバ側がファイル送信
という事の繰り返しですが、MSN Messenger が HTTP を使用している事を
考えると上記の 1. 2. の両立が出来そうな気がします。

No. 3348 # YK 2003/09/25 (木) 10:25:24
はじめまして。
いつもUNIXの情報を参考にさせて頂いております

現在、あるファイルに書かれたファイル名を取得し
そのファイル名が存在するか判定するCシェルを作成しております

set FILE_NAME = `awk '{printf $1}' fileA`

というコマンドでファイル名は取得できたのですが、
ファイル内で改行されている際に改行コードまで取得してしまい
ファイルの存在判定が正しく行えません

改行を除外してファイル名を取得する事は出来ないでしょうか?

ご存知でしたら御教授して頂きたく思います
宜しくお願い致します

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 3349 # 68user 2003/09/25 (木) 15:40:16
>>3344 Tsun
勉強になります。ありがとうございます。

もうちょっと勉強して自分のモノにしてから web の方も
修正したいと思います。

>>3345 asachio
> ある文字列を含む、ファイル名を検索するには
「ある文字列を含むファイル」の名前の一覧がほしいなら
>>3346 4lj
で紹介していただいた方法で。

じゃなくて「ファイル名にある文字列を含むファイル」の名前の
一覧が欲しいのなら
      % find /dir -name \*hoge\* -print
などなど。

>>3347 pranky
> 1. 基本的に既存のプロトコルが Peer to Peer なので、起動時に
> クライアント側からサーバ側へ HTTP 接続をし、その起動中は
> つないだままにしておきたい。
> 2. 接続中はクライアント側からもサーバ側からも数KB 位のデータの
> やりとりを双方向で行いたい。
1 は keep alive を使ったとしても、proxy のタイムアウトが
ある or あるかもしれないので無理ではないかと思います。

2 も HTTP ではサーバプッシュができないので、純粋な意味での
双方向通信は無理ではないでしょうか (サーバから不定期に
クライアントにデータを送るのは不可能だが、クライアントが
定期的にサーバに接続し、そのレスポンスにサーバからのデータを
載せるなら可能)。

> MSN Messenger が HTTP を使用している事を考えると上記の
> 1. 2. の両立が出来そうな気がします。
MSN Messenger は UPnP を使用しており、UPnP が HTTP の上を
流れているだけです。よって、純粋な HTTP では実現不可能では
ないかと思います。

どこまで実現可能かは、プロトコルの詳細がわからないとなんとも
言えないです。

>>3348 YK
> set FILE_NAME = `awk '{printf $1}' fileA`
> ファイル内で改行されている際に改行コードまで取得してしまい、
> ファイルの存在判定が正しく行えません。
csh は set foo=`bar` とした時点で改行コードを除去すると思う
のですが、改行コードまで取得してしまうというのは本当でしょうか?
どういう方法で改行コードが原因だと確認されましたか?

UNIX の改行コードは 0x0a ですが、DOS や Windows は 0x0d 0x0a
です。それが残っているのであれば、tr などで 0x0d を削除してください。
      http://x68000.startshop.co.jp/~68user/unix/pickup?tr

No. 3350 # セルゲイ 2003/09/26 (金) 14:16:15
Solaris8で
(1) 100M Full-Duplex
(2) 1000M Full-Duplex
が混在(共存)している環境を設定するには、どうしたらいいでしょうか。

因みに
(1) hme0
(2) ge0, ge1
という名で認識されるようです。

よろしくお願いします。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 3351 # 金床 [E-mail] 2003/09/27 (土) 12:46:25
>>3347 pranky
ファイアウォールがHTTP/1.1のCONNECTメソッドの使用を許可している環境で
あればそれを使用すれば解決しますね。

CONNECTの使用ができない場合にはHTTPトンネルと呼ばれるソフトウェアを使用すれば
良いと思います。

私が以前作成したHTTPトンネルが
http://www.jumperz.net/index.php?i=2&a=0&b=0
にあります。

68userさんのおっしゃる

>2 も HTTP ではサーバプッシュができないので、純粋な意味での
> 双方向通信は無理ではないでしょうか (サーバから不定期に
> クライアントにデータを送るのは不可能だが、クライアントが
> 定期的にサーバに接続し、そのレスポンスにサーバからのデータを
> 載せるなら可能)。

を実装したものとなっています。

その他上記URLからリンクしていますが、C言語で書かれたGNU Httptunnelなど同じ種類の
ソフトウェアがいくつか存在します。

No. 3352 # 落合 [E-mail] 2003/09/27 (土) 14:42:32
名づけのページを作っています。
漢字の組み合わせで名前を作るため
例えば 
亜xあyあい
井xい
のようなデーターを作り
while(<FILE>){
chomp;
$key=$_;
($key,$values)= split(/x/, $_);
$t3{$key}=$values;
}
のような連想配列に入れていました。
(色々と考えて漢字のデータはeuc,cgiスクリプトはsjisです)
これを使って名づけのCGIをホームページで公開しているのですがある人から「治」という字が使えないとメールがありなぜかなと考えてみました。
ローカル(windowsXP)な環境ではキチンと表示されます。がプロバイダにアップロードすると使えなくなります。(wakwakとNETAGEどちらも)
そこでアップロードして実験してみました。
@rkey= values %t3;
@rkey2= keys %t3;
これでキチンと配列が作られているか---連想配列は出来ていました。
次に
$nnn='治';
&jcode'convert(*nnn,"euc");
$us=$t3{$nnn};
とやってみたのですがこれだと$usの値が見つかりませんでした。
そこで
コードのせいかと思い単純に
$nnn='治';#これはsjis
&jcode'convert(*nnn,"euc");
として$nnnをHTML(euc)で表示したらコードの変換がうまくいかないようで文字化けします。
そこで
$nnn='治';
&jcode'convert(*nnn,"euc");
$code=&jcode'getcode(*nnn);
としてコードのチェックをしてみたのですが何もコードの判別ができないのです。
ちなみに違う漢字では上の実験はキチンと反応しました。
結果どうも治の文字コードの変換がうまくいかないように思うのですがどうしたらいいのかわからないのです。何かいい方法はありませんか?教えてください。お願いします。

No. 3353 # pranky [E-mail] 2003/09/28 (日) 01:44:07
>>3351 金床
金床さま、はじめまして pranky です。
ありがとうございます!
http tunnel で調べてみたところ CPAN に http-tunnel を実装した
モジュールがありましたので、簡単なソフトを作成して AnHTTPD と
一緒に使用してみたところ、TCP が接続できました!

この方法で試してみます!

No. 3354 # 68user 2003/09/28 (日) 22:51:36
>>3350 セルゲイ
> (1) 100M Full-Duplex
> (2) 1000M Full-Duplex
> が混在(共存)している環境を設定するには、どうしたらいいでしょうか。
100M な NIC と 1000M な NIC の 2枚差しではダメでしょうか。

って、まわりにギガビットな環境が全くないのでわからない
んですけどね。


>>3352 落合
Shift_JIS の「治」は 0x8e 0xa1 ですが、EUC-JP の半角カナの
句点「。」も 0x8e 0xa1 だからです。

> $nnn='治';
> &jcode'convert(*nnn,"euc");
> $code=&jcode'getcode(*nnn);
> としてコードのチェックをしてみたのですが何もコードの
> 判別ができないのです。
jcode.pl を読めばわかりますが、理論的にエンコーディングの
正確な自動判断は不可能なので、
    - EUC-JP として解釈できるバイト数
    - Shift_JIS として解釈できるバイト数
を比べ、バイト数が大きい方を getcode の結果としています。
しかし 0x8e 0xa1 の場合はどちらも 2バイトなので判断がつかず
getcode は undef を返します。

> 色々と考えて漢字のデータはeuc,cgiスクリプトはsjisです
であれば、jcode.pl にエンコーディングを教えてやればよいです。

      &jcode'convert(*nnn, 'euc', 'sjis'); # perl4 的な書き方
      jcode::convert(\nnn, 'euc', 'sjis'); # perl5 的な書き方

と書けば、きっちりと Shift_JIS から EUC-JP に変換してくれます。

No. 3355 # 68user 2003/10/02 (木) 06:16:15
>>3344 Tsun
> 共通鍵暗号のページで3DESでの鍵長が56*3にならない訳ですが
せっかく教えていただいたので、勉強してみました。といっても
    暗号技術大全
          http://www.amazon.co.jp/exec/obidos/ASIN/4797319119/ref%3Db%5Fbb%5F1%5F25/249-2894126-9073950
を読んだだけですが。


「鍵Aで暗号化 → 鍵Bで復号化 → 鍵Aで暗号化」という方法を
EDE (Encrypt-Decrypt-Encrypt) と言う。DES なら DES-EDE
などと書く。

Encrypt-Decrypt-Encrypt が特に解読しづらいわけではないので、
Encrypt-Encrypt-Encrypt でも別に構わない。

ただ、EDE の利点は、鍵A と 鍵B を同じにすれば一度だけ暗号化
したのと同じ結果が得られること (DES-EDE に対応しておけば、
DES にも対応したことになる)。

なぜ 3回必要なのか、2回の暗号化 (つまり 2DES) ではダメな
理由はというと、2回の暗号化では中間値探索 (meet-in-the-middle)
攻撃に弱いため。56bit の DES で 2回暗号化した場合、総当たり
攻撃に限ると 112bit の強さを持つが、中間値探索には 57bit の
強さしかない。


3DES には鍵を 2つ使う方法と、3つ使う方法がある。

鍵を 3つ使う 3DES は総当たりに対しては 56*3=168bit の強度が
あるが、中間値探索に対しては 112bit の相当の強度になる。

一方、鍵を 2つ使う 3DES は中間値探索の弱点はないため、総当たりと
中間値探索のいずれに対しても 112bit の強度になる。

よって、現実的な強さとしては鍵 3つの方が優秀である。

OpenSSL で実装されている暗号で言うと、
    鍵2つの 3DES: des-ede-cbc(=des-ede), des-ede-cfb, des-ede-ofb
    鍵3つの 3DES: des-ede3-cbc(=des-ede3=des3), des-ede3-cfb, des-ede3-ofb
となる。

ただ、
> 鍵長と演算量の比は対数的ですから、112ビットの鍵を使って
> 1回演算するより、56ビットの鍵を使って、3回演算するほうが
> 有利となります。
ここはよくわかりませんでした。DES の鍵は結局は 16ラウンド
それぞれの 48bit 内部鍵の元となるだけなので、対数的ではない
のではないかと思いました。

No. 3356 # has 2003/10/05 (日) 01:56:39
ども。おひさしぶりです。
これまでときどき私のlinux環境からDNSの名前解決ができない
という件でいろいろと相談させて戴いていましたが、今回たまたま
Redhat 9 publisher editionをインストールし試してみたところ、
なぜか無事名前解決できるようになりました。

もしかしたらこれまでインストール時に何かのチェックボックスに
チェックを入れなかったなど、気づいていなかったミスがあったかも
しれませんが、とにかく使えるようになりましたのでまずはご報告
します(もうしないかもしれませんが…^^;)。

というわけでこれまでいろいろアドバイスいただきまして、どうも
ありがとうございました。これで晴れて開発環境を手に入れ、無事
プログラミングにいそしむことができます。今後もどうぞよろしく
お願いします。

No. 3357 # 68user 2003/10/05 (日) 01:58:24
「ネットワークプログラミングの基礎知識」の「リンク集・参考書籍」
      http://x68000.startshop.co.jp/~68user/net/link-book.html
を更新し、以下の書籍の紹介を追加しました。

    - C言語による TCP/IP ネットワークプログラミング
    - IPv6 ネットワークプログラミング
    - 暗号技術大全
    - 暗号解読―ロゼッタストーンから量子暗号まで―

一番お勧めなのは、「暗号解読」のところで触れている
    フェルマーの最終定理
        http://shinchosha.co.jp/cgi-bin/webfind3.cfm?ISBN=539301-4
だったりします。

# 次点が「暗号解読」

No. 3358 # yudai 2003/10/08 (水) 02:19:23
はじめましてyudaiと申します。
突然お邪魔して誠に失礼とは思いますが、ご教授いただけませんでしょうか?

Perlでファイルオープン
    open(TESDAT, "tesdata.txt" ); #エラー処理略
    @list=<TESDAT>;

#testdata.txt内容
m_A9<>太郎<>26歳
f_C5<>花子<>23歳
m_G7<>一郎<>19歳
#ここまで

等として読み込むと
1行ごとに配列の要素となると思うのですが、、この場合に添え字[2]でなく要素の値(f_C5等)で参照する方法はございませんか?
htmlフォームから"f_C5"の入力を受け取りtesdata.txtを読み込み文字列を参照して
$ID="f_C5";
$name="花子";
$old="23歳";
のような結果を得たいのです。
尚、データベースモジュールは使えない環境です。
乱文にて恐縮ではございますがどうかお教えください。

No. 3359 # 68user 2003/10/08 (水) 18:58:09
>>3356 has
> なぜか無事名前解決できるようになりました。
そうですか、原因がわからず解決してしまって残念です :-)

ときにウチの環境でも返ってくる AAAA レコードが壊れていたり、
DNS サーバからの返事がなかなか返ってこなかったり、と思ったら
急になおったり、使用する DNS サーバを変えると再現しなかったり、
でも動作がおかしい DNS サーバはひとつではなかったり、と
なかなか大変です。

>>3358 yudai
案1:
    my $input_id = 'f_C5'; # web からの入力
    open(TESDAT, "tesdata.txt" );
    while (<TESDAT>){
            chomp;
            my ($ID, $name, $old) = split($_, '<>');
            if ( $ID eq $input_id ){
                    # なんらかの処理
            }
    }

案2:
    my $input_id = 'f_C5'; # web からの入力
    my %namehash;
    my %oldhash;
    open(TESDAT, "tesdata.txt" );
    while (<TESDAT>){
            chomp;
            my ($ID, $name, $old) = split($_, '<>');
            $namehash{$ID} = $name;
            $oldhash{$ID} = $old;
    }
    if ( defined $namehash{$input_id} ){
          # なんらかの処理。
          # print "$input_id $namehash{$input_id} $oldhash{$input_id}\n";
          # とか。
    }
というのが回答になっていますか?

No. 3360 # yoshi 2003/10/14 (火) 09:23:49
はじめまして、yoshiと申します。
FTPについてご教授頂きたく思い、書き込ませていただきます。

同一ネットワーク内において、
パソコン(Windows98)→ワークステーション(UNIX)へのFTPでのログインはcmd.exe上からFTPにてログインする事で、可能なのですが、
ワークステーション(UNIX)→パソコン(Windows98)へのFTPでのログインは可能でしょうか?
普通にFTPでログインしようとすると、「接続が拒否されました」と弾かれてしまいます。
可能だとしても、パソコン側で何か設定変更が必要なのでしょうか。

初歩的な質問で申し訳御座いませんが、よろしくお願い致します。

No. 3361 # 68user 2003/10/14 (火) 13:18:43
>>3360 yoshi
Windows98 上で FTP サーバを動かせば可能です。デフォルトでは
FTP サーバは用意されていないでしょう。フリー物がよければ
        http://www.forest.impress.co.jp/library/tinyftpd.html
などがよさそうに見えます。

なので、UNIX マシンに FTP でログインできるのも、
        「その UNIX マシン上で FTP サーバが動いているからログインできる」
ということです。

No. 3362 # しん [E-mail] 2003/10/14 (火) 16:31:16
はじめまして。
UNIXのことについて色々調べていたらこちらにたどり着きました。
以後よろしくお願い致します。

Tarコマンドについて質問があるのですが、
Tarコマンドのディレクトリ数の指定パラメータで
「.」と「./*」があり、
「./*」で指定した場合、ディレクトリ数の上限値があるそう
なのですが、その値はいくつなのでしょうか?

よろしければ教えてください。

No. 3363 # yoshi 2003/10/14 (火) 16:49:31
>>3361 68user

ありがとう御座いました!
そういう事だったのすね、早速やってみます!

No. 3364 # yoshi 2003/10/14 (火) 16:59:34
>>3361 68user
間違えて、書き込んでいる途中で送信してしまいました・・。
しかも脱字でした、すみません。
    ×そういう事だったのすね → ○そういう事だったのですね

家では実験できないので、会社で試してみるつもりです。
結果が分かり次第、報告させて頂きます!

No. 3365 # /tk 2003/10/14 (火) 17:05:39
>>3352 落合
http://x68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?howtouse
を読んだ後に cgi-ml で得た情報をコッチにも提供して欲しい気持ち。

>>3359 68user
> my ($ID, $name, $old) = split($_, '<>');
split の引数が逆ですぜ。

No. 3366 # 68user 2003/10/14 (火) 17:20:10
>>3362 しん
> Tarコマンドのディレクトリ数の指定パラメータで
> 「.」と「./*」があり、
> 「./*」で指定した場合、ディレクトリ数の上限値があるそう
> なのですが、その値はいくつなのでしょうか?
「ディレクトリ数の指定パラメータ」というくだりが いまいち
よくわかりませんが、要は
      % tar cf /foo/bar.tar .
だとエラーにならないのに、
      % tar cf /foo/bar.tar ./*
だとエラーになるのはなぜか、ということでしょうか?

であれば
      http://www.jp.freebsd.org/QandA/HTML/2111.html
をどうぞ。

ちなみに ARG_MAX は FreeBSD なら 64KB ですが、Solaris は
1MB です。手元の Linux マシンを見てみると 128KB でしたが、
ディストリビューションごとに異なる可能性はあります。

No. 3367 # 68user 2003/10/14 (火) 17:38:30
>>3365 /tk
> を読んだ後に cgi-ml で得た情報をコッチにも提供して欲しい気持ち。
      http://script.lovely.to/bbs/infolng.cgi?print+200309/03090012.txt
には報告して、こっちには報告してくれないのは嫌われている
からでしょうか。

って、どうせもう読んでないだろうからどうでもいいんですが。

最近は返事がなくても、クイズのつもりで回答しています。
悟りの境地に達したのかもしれない。

>> my ($ID, $name, $old) = split($_, '<>');
> split の引数が逆ですぜ。
おっと失礼しました。
      my ($ID, $name, $old) = split('<>', $_);
ですね。
  

No. 3368 # gaji 2003/10/14 (火) 19:40:36
ftp上のlsの挙動に関する質問です。
ftpサーバのOSはSolaris9です。
Bシェルでクライアント側のプログラムを作成しています。
ftp上で下記のようにワイルドカードでファイルを指定し、その結果をlsresult.txtファイルに出力しようとしています。

ftp>ls ?????.txt lsresult.txt


しかし、?????.txtに該当するファイルが無いと、クライアント側にはlsresult.txtファイルが作成されません。
様々な挙動調査の結果、lsを行うディレクトリがrootユーザーのものだとlsresult.txt自体が作成されませんが、一般ユーザーだと0バイトのlsresult.txtが作成されるという挙動の差異がありました。
lsに該当するファイルがなかった時に表示される「No such file or directory」というメッセージがlsresult.txtに出力される事を期待していますが、そのメッセージが応答されていないようです。
また、プログラムからでなく、コマンドラインから同じ事をしても同様の挙動でした。
なお、Solaris8等の他のマシンで動作確認したところ、lsに該当するファイルが無い場合には、lsresult.txtに「No such file or directory」のエラーメッセージが出力されました。
エラーメッセージの出力に関する設定、ftpdの違い、OSの違い等、疑うところはいろいろあるのですが、ftp上のls自体は機種等の環境に依存してしまうものでしょうか。
上記の説明で何が問題か分かりますでしょうか。
よろしくお願い致します。

No. 3369 # 68user 2003/10/14 (火) 20:12:08
>>3368 gaji
ftp サーバの OS は Solaris9 だと言うことはわかりましたが、
クライアント側の環境は何ですか?

ftp プロトコル自体には結果をファイルに落とすかどうかという
やりとりはありません。よって、ファイルに落とすか処理を行なう
のはクライアント側です。まずはクライアント側の環境を疑った
方がよいと思います。

> lsを行うディレクトリがrootユーザーのものだとlsresult.txt自体が
> 作成されませんが、一般ユーザーだと0バイトのlsresult.txtが作成
> されるという挙動の差異がありました。
「ls を行うディレクトリ」というのは、
        ftp> cd /hoge
        ftp> lcd /fuga
        ftp> ls ?????.txt lsresult.txt
としたときの「/hoge」のことを指していますか? それとも「/fuga」の
ことを指していますか?

また、ftp クライアントを実行するユーザの違いで挙動が変わりますか?

No. 3370 # gaji 2003/10/14 (火) 20:44:36
>>3369 68user
早速回答いただきましてありがとうございます。
今、お答えできる情報のみで申し訳ありませんが回答致します。

>ftp サーバの OS は Solaris9 だと言うことはわかりましたが、
>クライアント側の環境は何ですか?
Solaris2.6です。

>「ls を行うディレクトリ」というのは、
> ftp> cd /hoge
> ftp> lcd /fuga
> ftp> ls ?????.txt lsresult.txt
>としたときの「/hoge」のことを指していますか? それとも「/fuga」>のことを指していますか?
/hogeの事を指しております。

クライアント側は同じ状態にしておいて、FTPサーバ側をいろいろ変えて挙動が変換するので、サーバ側の問題かと思っていましたが、クライアント側も調べてみます。

No. 3371 # gaji 2003/10/15 (水) 21:58:03
>>3370 gaji
ftpのlsを調査した結果、以下の事が分かりました。
---------Solaris8がFTPサーバの時----------------------------
ftp> ls ?????.txt local.txt
200 PORT command successful.
150 ASCII data connection for /bin/ls (192.168.122.8,45207) (0 bytes).
226 ASCII Transfer complete.
local: local.txt remote: ?????.txt
49 bytes received in 0.012 seconds (3.90 Kbytes/s)
---------Solaris9がFTPサーバの時----------------------------
ftp> ls ?????.txt local.txt
200 PORT command successful.
550 ?????.txt: No such file or directory.

Solaris8のケースでは、/bin/lsによって処理されて、該当ファイルが存在しなくてもlocal.txtが作成され、中にエラーメッセージが出力されました。
Solaris9のケースでは、/bin/lsを使用していない?様です。
ftpdの内部コマンドで処理されているのでしょうか。
この場合は、local.txtが作成されていません。
ちなみに、ftp上でls -a等を行うと、Solaris8,9共に/bin/lsで処理されているようです。
lsとls -aでは、FTPプロトコルはNLSTとLISTのように違うと思いますが、インターネットで調べた限りでは「ls -aやdirなどは/bin/lsで処理され、lsはftpdの内部コマンドで処理される事が多い。」との記述がありました。しかし、今回のケースではSolaris8でのlsは/bin/lsで処理されているようです。ftpのNLSTが内部コマンドを使用するか、/bin/lsを使用するかは設定可能なものでしょうか。
もし、Solaris9でのlsも/bin/lsを使用するように設定変更可能なものであれば、設定変更して動作検証したいと思います。
もし、ご存知でしたらご教授いただきたいと思います。

No. 3372 # 68user 2003/10/16 (木) 00:22:37
>>3371 gaji
なるほど、ftpd の挙動が変わったのですね。

> ls -aやdirなどは/bin/lsで処理され、lsはftpdの内部コマンドで
> 処理される事が多い。
そういう実装が多かった、というのは確かかもしれません。
ただ、ProFTPD のように /bin/ls に一切頼らない ftp
サーバもありますので、あくまで「多かった」という程度
だと思います。

> ftpのNLSTが内部コマンドを使用するか、/bin/lsを使用するかは
> 設定可能なものでしょうか。
Solaris8, Solaris9 の ftpd を見る限りでは、そのような
設定はできないようです。
    http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.8&format=html
    http://www.freebsd.org/cgi/man.cgi?query=ftpd&&manpath=SunOS+5.9&format=html

> ftp> ls ?????.txt local.txt
> 200 PORT command successful.
> 550 ?????.txt: No such file or directory.
もしクライアント側が LIST を発行しているとしたら
(ftp -d で確認できます)、LIST に対して 550 を返すのは
RFC 違反ではないかなぁと思いました。

      http://hp.vector.co.jp/authors/VA002682/rfc959j.htm より引用

      以下の表では、それぞれのコマンドごとの成功・失敗の応答を一覧表にしてあ
      る。これらは、確実に忠実でなくてはならない。サーバーは応答中の文章を変更
      してもよいが、その意味、コード番号により示される動作と指定されたコマンド
      応答シーケンスは変更してはならない。

      コマンド応答シーケンス
              LIST
                    125, 150
                          226, 250
                          425, 426, 451
                    450
                    500, 501, 502, 421, 530

この解釈が正しいなら、Sun に文句を言えば直してくれる
かもしれません。

ただ、ftp は規格が曖昧で、実装依存の塊みたいなものなので、
ls してクライアント側で grep した方が後々のためにもよい
かもしれません。ファイルに落として grep するとか、
      ftp> ls . "|grep ^.....\.txt$ >hoge"
とするとか。

No. 3373 # yoshi 2003/10/16 (木) 23:23:36
>>3361 68user

68userさんのご助言通り、
ftpサーバをPCに入れてみました所、上手くいきました。
ありがとう御座いました!

No. 3374 # とーりすがり 2003/10/20 (月) 17:13:15
>>3371 gaji
確か、Solaris9からwu-ftpdベースになっている筈です。

以下man ftpaccess(4)から...
/etc/ftpd/ftpaccess
lslong /usr/bin/ls
lsshort /usr/bin/ls
lsplain /usr/bin/ls

上記3行を追加してみては如何でしょうか...
外していたらごめなさい。
ではでは

No. 3375 # gaji 2003/10/21 (火) 19:22:13
>>3374 とーりすがり
情報の提供ありがとうございます。
試してみたいと思います。
>確か、Solaris9からwu-ftpdベースになっている筈です。
これは、私も何かの書籍で見た記憶があります。
また、何か情報がございましたらお願いします。

No. 3376 # 新米 2003/10/22 (水) 01:15:16
イーサカード(hme等)のインスタンス番号についてご教授ください。
hme0と認識されているカードをカード実装位置を変えずにhme5のようにインスタンス番号のみ変更することは可能でしょうか?

No. 3377 # foofoo 2003/10/22 (水) 16:02:09
送信サーバ認証が不要な SMTPサーバではサーバ外メール送信は実現できています。
しかし、送信サーバ認証が必要な SMTPサーバではサーバ外メールを送信できません。(Outlook Express ではサーバ外メール送信OK)

SMTP AUTH と POP Before SMTP を試しました。

SMTP AUTH は NONE-SUPPORT のメッセージが返りました。

POP Before SMTP として、POPサーバに USER と PASS コマンドを使い認証を受けた後(正常終了)で QUIT の直後に、SMTPサーバ にconnectし、HELO, MAIL FROM: とコマンドを送信し、RCPT TO: で 550 5.7.1 と Relay エラーを出してしまいます。

POP Before SMTP を実現するためのコマンドシーケンスを教えてください。

VC++ 6.0 Windows98SE

宜しくお願い致します。

No. 3378 # リダイレクションを引きとして渡す 2003/10/22 (水) 20:48:05
関数にリダイレクションを引数として渡したいのですが
どうも上手くいきません。ご教示お願いいたします。(OS:HPUX)

KANNSUU(){
echo "A" $1 tmp.txt
}

KANNSUU >

結果:"A > tmp.txt"と表示されてしまう。

No. 3379 # 68user 2003/10/22 (水) 21:24:53
>>3374 とーりすがり
> 確か、Solaris9からwu-ftpdベースになっている筈です。
おお、ほんとうですね。
      http://docs.sun.com/db/doc/816-3965/6ma7896j8?l=ja&q=wu-ftpd&a=view
知りませんでした。

ってゆーか、まわりに Solaris9 環境がなかったりするんですけどね。

>>3376 新米
> hme0と認識されているカードをカード実装位置を変えずにhme5の
> ようにインスタンス番号のみ変更することは可能でしょうか?
(Solaris かどうか書いてないのでわかりませんが) Solaris の
ifconfig はいろんな設定ができるので、できるかもしれませんし、
できないかもしれません。

>>3377 foofoo
> POP Before SMTP を実現するためのコマンドシーケンスを教えてください。
POP でアクセスすればそれでよいはずです。


その前に、調べ方が効率悪すぎです。

まずはサーバがどういう認証方法を取っているか調べましょう。それが
できないなら、ethereal などのパケットアナライザを使って、Outlook が
どういうふうに接続しているか調べましょう。


>>3378 リダイレクションを引きとして渡す
eval を使って
      KANSUU(){
          eval "echo 'A' $1 tmp.txt"
      }
とします。しかし、そのうちメッセージやファイル名に空白や
シングルクォート・ダブルクォートが入ってたら〜とかいう
話になると思うので、
      KANSUU(){
          if [ $2 = 0 ]; # file 出力モード
                echo $1 > tmp.txt
          else # 標準出力モード
                echo $1
          fi
      }
的な書き方をお勧めしておきます。

No. 3380 # foofoo 2003/10/23 (木) 02:09:44
>>3379 さん、ありがとうございました。

> POP でアクセスすればそれでよいはずです。

何かが悪いのでしょうが、前の記述通り、POP から SMTP の切替て RCPT TO:で 550 が発生してしまいます。

うまく行っている Outlook を ethereal でトレースしようと思います。
ethereal のようなトレースツールも知りたかったので大変うれしく思っています。
早速 ethereal をダウンロードしてトレースしてみます。

テスト後ご報告致します。

foofoo

Prev< No. 3346〜3380> Next  [最新発言に戻る] [過去ログ一覧]