68user's page 掲示板

Prev< No. 2025〜2116> Next  [最新発言に戻る] [過去ログ一覧]
No. 2025 # 68user 2001/06/16 (土) 02:50:49
>>2023 rosegarden
> 68user さんは、お気づきだろうと思うので、蛇足ですが。
> 私の方では core を吐きました。多分、path とか URL の
> 長さチェックをしていないからだと思います。
全然お気づきではなかったです。お恥ずかしい。

「C で書くならここまでちゃんとやらないと」と言えるような
サンプルにしたいので、直しておきます。

No. 2026 # 椎(水明) 2001/06/16 (土) 13:40:52
PerlのCGIで記入した文章において,
改行をスペースに変換する方法を以前お尋ねしました。
その後,いろいろ試してみたのですが,
日本語コード変換直後に
$val =~ s/\r\n|\r|\n/ /g;
を記入することで上手くいきました。
どうもありがとうございました。

No. 2027 # スナフキン 2001/06/16 (土) 15:09:05
>>2024 68user
プロセスグループというのですか、時間があれば調べてみます。
しかし、ホントに良くできていますよね、M$とは大違いだ(笑)

>open(IN, "(cd dir; foo | bar) |") みたいなのを言ってますか?
いえいえ、全体的にです。
自分は、今の所bashしか使っていませんが、スクリプト言語全体に
同じような構文が多いように感じます。(意識的なんでしょうか?)

>環境を書いた方がよいでしょう。
そうですね、これからそう心がけます。
VineLinuxには /etc/rc.conf は無く、/etc/rc.d/ 関係にもそれらしい
記述は見つけられませんでした。いろいろ調べてみます。
ありがとうございました。

No. 2028 # スナフキン 2001/06/17 (日) 03:29:32
>>2022 スナフキン
> 何の事は無い、あっさり解決しました。
すいません、上記の発言は正確では有りませんでした。
正確には、ps での表示にはちゃんと親子関係が表示されましたが、
コマンド jobs には表示されませんでした。
ん〜、親PIDが判る(killできる)のでこれでも可です。

>プロセスグループ
コレ、特有の呼び名かと思いましたが、単純に自分の言っていた親子
関係にあるプロセス群のことを指していたのですね(^^;

No. 2029 # 尚隆 [URL] 2001/06/17 (日) 23:38:15
すみません。ネット初心者です。
くだらないことをおききしたいのですが、、、。
いろいろなホームページをみていたら、かってに
何かわからないのですが、「無料のダウンロードを行いました」
といって、なんだか何もしていないにもかかわらず、
なにかが、ダウンロードされてしまったみたいです。
これによって、個人情報が流れてしまったり、することはあるのでしょうか?なんだか不安です。
アドバイスお願いします。
いろいろ不安になります。

No. 2030 # koni 2001/06/18 (月) 18:03:19
koni と申します。
(環境: ActivePerl v5.6.0 + WinNT)

ワンタイムパスワードについて質問があります。
MD5 を使い認証をしてくるサーバーに Net::FTP を使用して自動 FTP をし
たいのですが、うまく行きません。

詳細は以下です。
※この件に明るくないため、言葉の使用法が誤っているかも知れません。

==
まずは、

# start -----
use Net::FTP;

$ftp = Net::FTP->new("ftp-server-name.co.jp", Debug => 1);
$ftp->login('user', 'pass');
$ftp->quit;
# end -------

などとしたところ、PASS を送信したところで、はじかれてしまいました。
ちなみにこれを ffftp などの MD5 対応のクライアントを使うと、

FFFTP Ver.1.80 Copyright(C) 1997-2001 Sota.
----------------------------
ホスト ftp-server-name.co.jp を探しています.
ホスト ftp-server-name.co.jp (***.***.***.*** (21)) に接続しています.
接続しました.
    :(省略)
>USER user
331 * * *
MD5を使用します.
>PASS [xxxxxx]
230 User user logged in.
>TYPE A
200 Type set to A.
ダウンロードのためにホスト ***.***.***.*** (*****) に接続しています.
接続しました.
>NLST -alL
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
ファイル一覧の取得は正常終了しました. (124 Bytes)
(* の部分は伏せてあります。)

などとなり、接続できました。
個人的には、Net::FTP にこの MD5 を実装するには、上記の USER user をし
たあと、331 の後の値を、Digest::MD5 のメソッドにかませて、戻り値をパ
スワードとして送信すれば OK なのか、と考え、やってみたのですがダメそ
うでした。

もしご存知のかたがいらっしゃいましたら、ご教授願います。

No. 2031 # rosegarden 2001/06/19 (火) 07:33:34
>>2030 koni
> ワンタイムパスワードについて質問があります。
> MD5 を使い認証をしてくるサーバーに Net::FTP を使用して自動 FTP をし
> たいのですが、うまく行きません。
一口にワンタイムパスワードといってもいくつかあるので、
これだけでは分かりません。
しかし、md5 が云々と言うことから、opie じゃないかと思いますが。
私自身 opie も S/key も使ったことがないので、分かりませんが、
> 個人的には、Net::FTP にこの MD5 を実装するには、上記の USER user をし
> たあと、331 の後の値を、Digest::MD5 のメソッドにかませて、戻り値をパ
> スワードとして送信すれば OK なのか、と考え、やってみたのですがダメそ
> うでした。
多分 password を md5 でハッシュしても駄目でしょう。
ワンタイムパスワードの意味がないです。
CPAN に
http://search.cpan.org/search?mode=module&query=opie
という module があるのでトライしてはどうでしょうか?
とにかく、認証方法がワンタイムパスワードとしか分からないので、
これでうまくいくかどうかは保証できません。
上記サイトの module search で S/key とか MD5 とか MD4 で
それらしきものを検索してはどうですか?

でも良いことを聞きました。ありがとうございました。

# web サーバで ftp 使わせているのですが、
# パスワードの保護がどうにかならないかと
# 頭を抱えていたところです。

No. 2032 # snow [E-mail] 2001/06/20 (水) 13:31:30
はじめまして、C言語でFTPクライントを作ろうとここのページを参照させて
いただいたのですが、以下の部分のソースがよくわかりません。
  
  87: while (1){
  88: char c;
  89: c = getopt(argc, argv, "d");
  90: if ( c == -1 ) break;
  91: switch (c){
  92: case 'd':
  93: debug_flg = 1;
  94: argc--;
  95: argv++;
  96: break;
  97: default:
  98: break;
  99: }
100: }

getoptは調べたところint型だと思うのですが、なぜchar型の変数に値を
代入しているのでしょうか?
また、いろいろ調べてみたんですが、このgetoptで何をしているのかもよく
わかりませんでした。よろしければこの部分についての解説もお願いいたし
ます。m(_ _)m

No. 2033 # 68user 2001/06/20 (水) 14:07:33
>>2030 koni
そういう FTP サーバを使ったことがないので試すこともできないのですが、
これって APOP みたいな感じなんですかね? どこかで公開されている FTP
サーバはないものでしょうか。

>>2032 snow
> getoptは調べたところint型だと思うのですが、なぜchar型の変数に
> 値を代入しているのでしょうか?
これは僕のミスで、正しくは int です。直しておきます。

> このgetoptで何をしているのかもよくわかりませんでした。
引数解析です。
    for ( i=1 ; i<argc ; i++ ){
        if ( argv[i][0] == '-' ){
            switch (argv[i][1]){
                case 'd': debug_flg = 1; break;
            }
        }
    }
みたいなもんですが、自分で書くのもめんどくさいのでライブラリを
使いました。

詳しくはここらへんをどうぞ。
    http://www.jp.FreeBSD.org/cgi/mroff.cgi?subdir=man&man=getopt&dir=jpman-3.1.0%2Fman&sect=3

No. 2034 # 68user 2001/06/20 (水) 14:19:27
>>2033 otp-md5
google 君に教えてもらいました。なるほど、こんな感じの流れになるのか。
    http://www.jaist.ac.jp/~uchida-t/otp/

No. 2035 # snow [E-mail] 2001/06/20 (水) 18:07:04
>>2033 68user

ご回答ありがとうございます。
ですが、このままint型に変えただけだと、エラーがなければCに入るのは
通常「100」ですよね?ということは
case 100: とすれば良いのですよね?
そこを修正して、先ほどのプログラムを例に従って実行してみたのですが、
どうもどこかでループにはまっているようで、ファイルの取得ができません。
う〜ん・・・(汗

No. 2036 # ED 2001/06/21 (木) 05:36:12
>68userさん
http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/view-segabbs.cgi.diff?r1=1.3&r2=1.1&f=h
ロボット検からまだ引っかかるので上記ページを確認したのですが
<head>の部分が</head>になっているのがちょっと変かなっと思ったのですが…どうなんでしょうか。

No. 2037 # 68user 2001/06/21 (木) 10:19:50
>>2035 snow
> エラーがなければCに入るのは通常「100」ですよね?
'd' の character code は 100 なので、100 でも 'd' でも動作は
同じですけど、可読性やメンテナンス性を考えて 'd' と書きましょう。

> どうもどこかでループにはまっているようで、ファイルの取得ができません。
できる限り余分な部分を削ったソースを見せて下さい。

>>2036 ED
> <head>の部分が</head>になっているのがちょっと変かな
プログラムのソースでなく実物を見て下さい。
    http://X68000.startshop.co.jp/~68user/segabbs/bbs3/vol5/5_97.html

> ロボット検からまだ引っかかるので
META タグを追加してからまだ15日しか経過していません。例えば
google なら、クロール頻度は最低1ヵ月に1回だそうです。
    http://www.google.com/intl/ja/faq.html

No. 2038 # snow [E-mail] 2001/06/21 (木) 17:59:55
>>2037 68user

>> エラーがなければCに入るのは通常「100」ですよね?
>'d' の character code は 100 なので、100 でも 'd' でも動作は
>同じですけど、可読性やメンテナンス性を考えて 'd' と書きましょう。

そうなんですか。すいません、'd'で大丈夫だとは知りませんでした。

>> どうもどこかでループにはまっているようで、ファイルの取得ができま
>>せん。
>できる限り余分な部分を削ったソースを見せて下さい。

いえ、前回のcの型の変更以外の変更は行っていません。
それでできないのですが・・・

No. 2039 # ED 2001/06/22 (金) 00:17:06
>68useさん
すいません。プログラムのほうしか見てませんでした。

No. 2040 # Moo [E-mail] 2001/06/22 (金) 11:56:36
    お礼です。
    「ネットワークプログラミングの基礎知識」を参考にさせて頂きました。
    とても分かりやすく私にとって大変役に立ちました。
    自分はDOSやWindowsのアプリ、ドライバを作ることが主な仕事ですが
この度、サーバ側のプログラムを作ることになり、こちらのHPを参考に
させていただきました。
    特に「ネットワークプログラミングの基礎知識」と「簡易版コマンド
マニュアル」内のcrontabを読ませていただき、大いに参考になりました。
    普段はC(ドライバ作成用)とDelphi(クライアント側アプリ作成用)
を使っていますが、こちらでPerlの使い方までも教えてもらいました。
    ただただお礼を言うばかりです。

    素晴らしいHPを提供してくださって、こころから感謝申し上げます。
    有り難うございました。

No. 2041 # 68user 2001/06/23 (土) 16:48:47
>>2038 snow
> いえ、前回のcの型の変更以外の変更は行っていません。
> それでできないのですが・・・
動かないというのは、
    http://X68000.startshop.co.jp/~68user/net/c-ftp-1.html
の ftp-client.c ですか? コマンドラインからは何とタイプしましたか?
    % ./ftp-client -d anonymous your@mail.address ftp.jp.FreeBSD.org /pub/FreeBSD/README.TXT
のように -d を付けるとデバッグ情報が表示されますが、どこで
止まっていますか?

もし NAT 環境で試しておられるなら、
    --> PORT 192,168,0,7,9,58
    <-- 500 Illegal PORT range rejected.
などとプライベート IP アドレスを送ってしまい、エラーと
なります。しかしこのプログラムではエラーチェックを行って
いないので、構わず RETR を送ってしまいうためファイルを
取得できません。この点は説明を付けておくべきでしたね。

getopt の件は修正しておきました。ご指摘ありがとうございました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/ftp-client.c

>>2039 ED
というわけで、しばらくお待ち下さい。

>>2040 Moo
どもども。わかりにくい点がありましたら ご指摘お願いします。

No. 2042 # 68user 2001/06/23 (土) 16:59:13
>>2041 68user
> この点は説明を付けておくべきでしたね。
NAT 環境では動かない旨、追加しました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/c-ftp-1.html.diff?r1=1.1&r2=1.2&f=h

No. 2043 # 68user 2001/06/24 (日) 06:39:45
>>1691 紅の猫
>>2023 rosegarden
http-client, http-client-2 のバッファオーバーランの修正と、
bzero,bcopy の説明の追加を行いました。ご指摘ありがとうございました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/http-client.c
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/org/c-http-1.html

No. 2044 # 幸江 2001/06/24 (日) 17:06:56
このようなことでもアドバイスもらえるのかな?
えっと、CGIでHTMLの一部(5行目から7行目)までとかをログとして取得し、その部分を出力することはできるんでしょうか?

No. 2045 # 68user 2001/06/25 (月) 11:43:05
>>2044 幸江
質問の意味がわからないです。

> HTMLの一部(5行目から7行目)までとかを
この HTML はどこにあるんですか? どこかから取得するんですか?

> ログとして取得し、その部分を出力
「ログとして取得」とはどういう意味でしょうか? HTML から
特定の範囲を切り出し、ブラウザ上に出力し、さらにそれを
ログに記録しておくのですか?

No. 2046 # snow [E-mail] 2001/06/25 (月) 14:08:00
>>2041 68user

以下のようにコマンドを打ったところ、
./ftp-client -d userid passwd hogehoge.com index.html

以下のようなデバッグ情報が出力されました。(一部文字化けしてますが)
<-- 220-************************************************
<-- 220- 洩T[o[韃
                                                誉芒鋤天B
<-- 220-OS ・indows98SE 費 怒莉(19)髟・・
房-- 220 ************************************************
--> USER userid
<-- 331 Give me your password
--> PASS passwd
<-- 530 Not authorized.
--> PORT 172,18,168,100,4,19
<-- 5--> RETR index.html

で止まってしまいました。

NAT環境では使用していないので、ご指摘いただいた問題はないと思います。

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

No. 2047 # snow [E-mail] 2001/06/25 (月) 14:17:26
あと、今確認したところUSER,PASS,PORTというファイルが残ってました。

下の書き込みで文字化け対象を記入してしまって、申し訳ありません。

No. 2048 # 68user 2001/06/25 (月) 16:03:08
>>2046 snow
> --> PASS passwd
> <-- 530 Not authorized.
ということは、ユーザ名かパスワードが間違ってませんか?

>>2047 snow
> 今確認したところUSER,PASS,PORTというファイルが残ってました。
「--> PASS」というのを誤って copy & paste してしまったんじゃ
ないでしょうか。このプログラムにはファイルを生成するコードは
入っていないです。

No. 2049 # 幸江 2001/06/25 (月) 16:43:17
>質問の意味がわからないです
ごめんなさい。

>> HTMLの一部(5行目から7行目)までとかを
>この HTML はどこにあるんですか? どこかから取得するんですか?
HTMLはYahoo!のトップなどです。

>> ログとして取得し、その部分を出力
>「ログとして取得」とはどういう意味でしょうか? HTML から
>特定の範囲を切り出し、ブラウザ上に出力し、さらにそれを
>ログに記録しておくのですか?
そのようにしたいのですが可能なのでしょうか?

No. 2050 # snow [E-mail] 2001/06/25 (月) 16:51:44
>>2048 68user

再度実行したところ、USER,PASS,PORTは出てきませんでしたので、
私の間違いだったようです。すいません。

>> --> PASS passwd
>> <-- 530 Not authorized.
>ということは、ユーザ名かパスワードが間違ってませんか?

間違ってないんですが・・・(汗
普通にftpコマンドで繋げるとちゃんとつながりますし。
なぜでしょう。。。

下では書きませんでしたが、パスワードをacerolaとしているのですが、
どうもパスワードでNGになっているようです。
なぜだかわかりますでしょうか?

No. 2051 # snow [E-mail] 2001/06/25 (月) 16:52:56
すいません、追記です。
どうしてパスワードでNGになったかわかったかと言うと、
サーバー側のログを見て、パスワードでNGになっていることを確認
しております。

No. 2052 # 68user 2001/06/25 (月) 17:06:22
>>2049 幸江
> HTMLはYahoo!のトップなどです。
可能です。HTTP をしゃべりたいなら
    http://X68000.startshop.co.jp/~68user/net/
を参考に自分でダウンローダを作るか、wget、fetch、lynx などの
ダウンローダを使うとよいでしょう。

例として Yahoo! を出しているのならよいのですが、もし他人の
ページの一部を持ってこようとしておられるなら、相手の許可を
得てからにしましょう。

>>2050 snow
> 普通にftpコマンドで繋げるとちゃんとつながりますし。
なるほど。
    o ftp コマンドではログインできる
    o -d オプションによるデバッグ表示を見ても、正しいパスワードを
        送信しているように見える
    o パスワードには * や ? などの文字は含まれていない
        (シェルがワイルドカードを解釈しているわけではない)
ということですね。謎です。

ftp コマンドで debug モードを ON にしてみると何かわかりませんか?
    % ftp
    ftp> debug
    Debugging on (debug=1).
    ftp> open hostname
    Connected to hostname
    220 hostname FTP server (Version 6.00LS) ready.
    Name (hostname:username): username
    ---> USER username
    331 Password required for username.
    Password:
    ---> PASS password
などと表示されると思います (ftp クライアントによっては、
PASS **** などと何を送っているか見せてくれないかも
しれませんが)。

また、認証までなら telnet でもできますので、試してみて下さい。
    % telnet hostname 21
    Connected to hostname.
    Escape character is '^]'.
    220 hostname FTP server (Version 6.00LS) ready.
    USER username
    331 Password required for username.
    PASS password

No. 2053 # ゆうすけ [URL] [E-mail] 2001/06/29 (金) 15:52:35
お世話になっています。本当、UNIXの部屋を良く、使っています。
ところで、コマンドを自分のUNIX環境で有効にするには、どうしたら
いいですか?使えないコマンドがたくさんあるのですが・・・ぜひ、
教えて下さい。先輩に聞いたら、いろいろと設定しなければならない
とかで・・・詳しくは、教えて貰えませんでした。どうぞ、教えて
下さい。

No. 2054 # 68user 2001/06/29 (金) 17:10:27
>>2053 ゆうすけ
回答を出しやすくするために、
    - OS は何か (uname -a の結果)
    - 例えばどんなコマンドが使えないか
を挙げて下さい。

No. 2055 # ゆうすけ [URL] [E-mail] 2001/06/29 (金) 22:50:47
  早速の返答ありがとうございます。uname -aの結果は、
SunOS std2ss42 5.6 Generic_105181-23 sun4u sparc SUNW,Ultra-5_10と出て来ました。
コマンドは、ジャンル別検索のゲーム(rainなど、他にもたくさん)です。
よろしく、お願いします。

No. 2056 # 高田 [E-mail] 2001/06/30 (土) 20:48:34
フラットヘッド型スキャナについての機能と仕組みはなんですか?フラットヘッド型スキャナの製品の一例を紹介してください。また工夫されている点を解説してください。

No. 2057 # たかし [E-mail] 2001/07/02 (月) 21:15:42
ネットワークプログラミングの初心者です。今、仕事で始めたばかりなのですが、inet_atonを使う場合のライブラリは、何を指定すればいいのでしょうか?-lnsl -lsocketではダメなようで。。。教えていただけると、大変たすかります。よろしくお願いします。

No. 2058 # rosegarden 2001/07/03 (火) 06:28:07
>>2057 たかし
> inet_atonを使う場合のライブラリは、何を指定すればいいのでしょうか?
> -lnsl -lsocketではダメなようで。。。
こういう場合には OS とそのバージョンを書かないと無意味です。

inet_aton はない場合もあるので、inet_addr でも使って下さい。
例えば、Solaris 2.5.1 には inet_aton はありませんでした。
(でも、inet_ntoa はあるけど…。)
詳しいことは man inet_addr してください。

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int
main(int argc, char *argv[])
{
                printf("%x\n", inet_addr("192.168.0.1"));
                return 0;
}

No. 2059 # snow [E-mail] 2001/07/03 (火) 10:59:20
>>2052 68user

回答遅れてすいません。

>ftp コマンドで debug モードを ON にしてみると何かわかりませんか?

passwdの部分がXXXXになってしまい、よくわかりません。
それに、ftpコマンドは通常どおり通るので、プログラムでどこが正常で
ないのかはちょっとわかりません。
再度プログラムをダウンロードしてトライしてみます。

No. 2060 # 68user 2001/07/05 (木) 00:24:49
>>2055 ゆうすけ
> uname -aの結果は、SunOS std2ss42 5.6
Solaris2.6 ですね。「UNIX の部屋」は基本的に FreeBSD に
ついて書いてますので、Solaris にないコマンドはいっぱいあります。

基本的にインストールしたいものがあれば、ソースを持ってきて
自分でコンパイルします。ソースのありかは
    http://ftpsearch.lycos.com/?form=medium
で調べるとよいでしょう。例えば foo-1.1.tar.gz を取得したら
    % gzip -dc foo-1.1.tar.gz | tar zxvf -
で展開し、
    % cd foo-1.1
    % ./configure
    % make
    % make install
という流れになります (これほど簡単にはいかない場合がほとんどですが)。

また、sunsite というコンパイル済みのものを配布している
ところがありますが、あまり数は多くないです。
    http://sunsite.sut.ac.jp/sun/solaris-binaries/sparc/

>>2058 rosegarden
> Solaris 2.5.1 には inet_aton はありませんでした。
Solaris2.6 にも Solaris7 にも inet_aton はありませんでした。

>>2010 もっち
https でのアクセスは実現できましたか? 結果報告をお待ちして
おります。

No. 2061 # skel.103M [E-mail] 2001/07/06 (金) 02:18:19
いつもお世話になっております。
今度はSMTPについての質問なのですが……

SMTPサーバに接続した後最初にクライアント側で行うことは、HELO(またはEHLO)
を送ることですよね。でも、なぜこういうことをするようRFCで定められている
のでしょうか?これがなければ生じる不具合はどういったものが考えられるので
しょうか?「SMTP EHLO 解説」をキーワードにしてGoogleで検索しましたが、
決定的なものが見つかりませんでした…。他に「オライリー・ジャパン」から
出版されている「Sendmail システム管理」なる本も読みましたが、なんかこの
部分だけ意図的に説明を避けているみたいで… (^^;;

何とぞよろしくお願いします。

No. 2062 # 68user 2001/07/06 (金) 04:10:14
>>2061 skel.103M
とりあえずこちらを。
    http://djbdns.jp.qmail.org/djb/smtp.html
知りませんでしたが、envelope がクリアされるらしいですね。

No. 2063 # rosegarden 2001/07/06 (金) 04:14:30
>>2061 skel.103M
> SMTPサーバに接続した後最初にクライアント側で行うことは、
> HELO(またはEHLO)を送ることですよね。

とは限りません。うちなんかだと次のようしても
メールが送れるようになっています。

% telnet mail 25
Trying xxx.xxx.xxx.xxx...
Connected to mail.hogehoge.co.jp.
Escape character is '^]'.
220 mail.hogehoge.co.jp ESMTP Postfix
MAIL from:<rosegarden@hogehoge.co.jp>
250 Ok
RCPT TO:<rosegarden@isp.net.ne.jp>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
This is a test.
.
250 Ok: queued as 9CEF017A4A
quit
221 Bye
Connection closed by foreign host.

> でも、なぜこういうことをするようRFCで定められている
> のでしょうか?

RFC 821 や RFC 2821 をざっと見た限りだと MUST とか SHOULD
とかいう表現はありませんね。

それから、sendmail の operation guide をみると
PrivacyOptions の項に
          public Allow open access
          needmailhelo Insist on HELO or EHLO command before MAIL
          needexpnhelo Insist on HELO or EHLO command before EXPN
          noexpn Disallow EXPN entirely, implies noverb.
          needvrfyhelo Insist on HELO or EHLO command before VRFY
とあるので、このことからも、HELO や EHLO をどうするかには
任意性があるように思えます。

Postfix でも main.cf.default をみると
smtpd_helo_required = no
なんていう設定項目があります。
ということは、設定の際に任意性があるわけです。
おそらく、デフォルトでインストールすれば、HELO なしで
通る場合が多いでしょう。

No. 2064 # rosegarden 2001/07/06 (金) 04:21:56
>>2062 68user

> とりあえずこちらを。
> http://djbdns.jp.qmail.org/djb/smtp.html
> 知りませんでしたが、envelope がクリアされるらしいですね。

失礼しました。蛇足の書き込み申し訳ありません。

No. 2065 # 68user 2001/07/06 (金) 07:21:53
「ネットワークプログラミングの基礎知識」
    http://X68000.startshop.co.jp/~68user/net/
に「SSL でアクセスしてみよう」
    http://X68000.startshop.co.jp/~68user/net/ssl.html
を追加しました。

サンプルソースがほとんど
    http://stingray.sfc.keio.ac.jp/security/ssl/ssl.html
のパクリというのが情けない…。

No. 2066 # 68user 2001/07/06 (金) 07:31:41
ときに、UNIX+Java+Java servlet+JDBC+Postgres+
XML+XSLT な解説って需要ありますか?

書きたくはあるけれど、普通の ISP では Java servlet なんて
使えないだろうなぁ…。

No. 2067 # skel.103M [E-mail] 2001/07/06 (金) 15:56:11
どうも、skel.103Mです。
素早いフォローありがとうございます。>68user様・rosegarden様

>>2063 rosegarden
> > でも、なぜこういうことをするようRFCで定められている
> > のでしょうか?
>
> RFC 821 や RFC 2821 をざっと見た限りだと MUST とか SHOULD
> とかいう表現はありませんね。
RFC2821には MUST や SHOULD なる表現があります。RFC2821の
4.1.1.1 Extended HELLO (EHLO) or HELLO (HELO)の第2段落にある以下の記述が
これに該当すると思います:
> A client SMTP SHOULD start an SMTP session by issuing the EHLO
> command.

> In any event, a
> client MUST issue HELO or EHLO before starting a mail transaction.

RFC2821はRFC821を破棄したわけですから、クライアントによるHELO(また
はEHLO)コマンドの発行が新しく*必須*となったと考えてよいと思われ
ます。その理由っていったい何なんでしょう??私にはさっぱり想像
できないんですけど……。そこで、
>>2062 68user
> とりあえずこちらを。
> http://djbdns.jp.qmail.org/djb/smtp.html
を見てみましたが、これによると、「サーバ 実装者には HELOなしの世
界への将来の転換をサポートするように、 クライアント が HELOを省略
させるようにしむけることを推奨します。」という記述があるんです
けど。…これってHELO(またはEHLO)の存在意義はないと言ってるよう
にとれるんですけど……私だけ? (^^;;;

> 知りませんでしたが、envelope がクリアされるらしいですね。
ご紹介いただいたWebページはqmailの実装をもとにして記述されたもの
のようですが、RFC2821にはそれを示唆する部分は見つけられませんでし
た。

う〜む……

No. 2068 # rosegarden 2001/07/06 (金) 17:07:28
>>2067 skel.103M
> > > でも、なぜこういうことをするようRFCで定められている
> > > のでしょうか?
> >
> > RFC 821 や RFC 2821 をざっと見た限りだと MUST とか SHOULD
> > とかいう表現はありませんね。
> RFC2821には MUST や SHOULD なる表現があります。RFC2821の
> 4.1.1.1 Extended HELLO (EHLO) or HELLO (HELO)の第2段落にある以> 下の記述が
> これに該当すると思います:
なるほど、おっしゃる通りです。
私は 3.2 を見ていました。
かえって勉強になりました。ありがとうございます。

No. 2069 # @km 2001/07/08 (日) 00:06:17
はじめまして。
いつも勉強させていただいています。
質問なのですが、
UNIXでファイルのバージョンを管理するコマンド(TOOL!?)って
デフォルトであるのでしょうか?

ちなみに、
# $Id: echo-server-select.pl,v 1.1 2001/04/21 18:56:41 68user Exp $
↑は、どのようにやっているのでしょうか?
(※勝手に引用させてもらいすいません。)

No. 2070 # 68user 2001/07/08 (日) 04:35:12
>>2067 skel.103M
うーむ、私のレベルではちょっとついていけませんです。無念。

>>2069 @km
> UNIXでファイルのバージョンを管理するコマンド(TOOL!?)って
> デフォルトであるのでしょうか?
UNIX と言ってもいろいろあります。何をお使いですか?
# 上の「使い方」のところにも書いてあるように、OS やバージョンを
# 必ず書いて下さい。

無料で利用できるものならば、RCS と CVS があります (SCCS はよく知らない
のでパス。今でも現役なのかしら)。FreeBSD, NetBSD, OpenBSD なら両方デフォ
ルトで入っています。Solaris なら両方ともデフォルトでは用意されていませ
ん (当然ですがインストールすれば使えます)。Linux はわかりません。

両者の特徴はこのページをどうぞ。
    http://www2.noritz.co.jp/anchor/ashp/peggy/cvs/cvs_rcs.html

このサイトのコンテンツは CVS で管理しています。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi.diff?r1=1.1&r2=1.2&f=h
のように、ファイルの修正履歴が残ること、変更点を容易に把握できること、
ネットワーク経由でアクセスできることが利点です。

> $Id: echo-server-select.pl,v 1.1 2001/04/21 18:56:41 68user Exp $
> ↑は、どのようにやっているのでしょうか?
$Id:$ という文字列を埋め込んでおけば、勝手にバージョンや更新時刻や更新
者名が埋め込まれます。この機能は CVS, RCS 両方に備わっています。

CVS については書籍も4冊ほど出ていますし、解説しているサイトもたくさん
ありますので、興味があれば google などで検索してみて下さい。

No. 2071 # skel.103M [E-mail] 2001/07/08 (日) 22:22:16
>>2070 68user
> >>2067 skel.103M
> うーむ、私のレベルではちょっとついていけませんです。無念。
68user様が
>>2062 68user
で紹介されていたサイトは
http://www.google.com/search?as_q=SMTP&num=10&btnG=Google+%8C%9F%8D%F5&as_epq=&as_oq=HELO+EHLO&as_eq=&lr=lang_ja&as_occt=any&as_dt=i&as_sitesearch=
などでヒットしたサイトのうち最初に出てきたものですよね。上記検索
結果の4つ目付近にある
    http://spica.u-aizu.ac.jp/study/material/2000-10-17/neo-study3.pdf
の7ページ目には次のように書かれていました:
        「sender-SMTPとreceiver-SMTPを識別するためのコマンド」
…これは正しいのでしょうか?

これに関する質問は今回限りということで何とぞよろしくお願いします。
m(__)m

No. 2072 # Ten 2001/07/10 (火) 11:50:27
どなたかご存じでしたら教えて下さい。
当方、Cygwin on Win95 な環境で Wanderlust on XEmacs として mail 環境を
構築しています。
                                                                                                                                                  
今回、更に fetchmail & Maildrop を使用して、mail を local に取り込もうと
しています。
Maildrop で local spool に取り込み、Wanderlust で読むとすれば、Maildir
形式になるかと思い、試行錯誤の上、何とか Maildir 形式で取り込めたのですが、
Wanderlust で読み込む段になって困ってしまいました。
                                                                                                                                                        
Maildir 形式だと、new/ -> cur/ の mail 移動を行う際に、path にl `:' を
含めてしまうんですね。
Windwos では、path に `:' を含めることが出来ないため、ここから先に進む
ことが出来ません。
                                                                                                                                                        
どなたかこの様な状況を解決された方はいらっしゃいませんでしょうか。

No. 2073 # harap 2001/07/10 (火) 12:11:28
はじめまして、いつも参考にさせてもらっております。
どなたかご存知でしたら教えてください。
指定ディレクトリ以下のファイルで、ディレクトリのみ表示する
ことは可能ですか?
ちなみにla -dでは出来ませんでした。

No. 2074 # skel.103M [E-mail] 2001/07/10 (火) 15:01:13
>>2073 harap
find <DIR> -type d
で可能だと思います。詳細は「man find」で。

No. 2075 # harap 2001/07/10 (火) 16:04:09
>>2074 skel.103M
ありがとうございました。
うまくできました。

No. 2076 # harap 2001/07/10 (火) 17:26:13
たびたびすいません。
現在Cシェルにてプログラムを作成中なのですが
echoで表示している文字列にカラー設定することは可能でしょうか?

No. 2077 # 68user 2001/07/10 (火) 18:34:54
>>2071 skel.103M
> 「sender-SMTPとreceiver-SMTPを識別するためのコマンド」
> …これは正しいのでしょうか?
ん〜、HELO で envelope がクリアされるなら、中継サーバは
HELO をしゃべっちゃいけないので、結果として識別できるの
かなぁとは思うのですが…。どうなんでしょう。

>>2076 harap
> echoで表示している文字列にカラー設定することは可能でしょうか?
端末に依存しますが、可能です。
    perl -e 'print "\x1b[31m"' (赤)
    perl -e 'print "\x1b[32m"' (緑)
    perl -e 'print "\x1b[30m"' (黒)
などなど。kterm や TeraTerm などならこれで OK でしょう。
    echo ^[[32m
でもいいです (^[ の部分は直接 ESC 文字を打ち込みます。tcsh 上なら
C-v ESC、emacs 上なら C-q ESC)。
    perl -e 'print "\x1b[31mhoge\x1b[32mfuga\x1b[30m"'
などと続けて書いてもいいです。

# 他にコントロールコードを直接出力できるコマンドって
# ありましたっけ? (stty とか tset の方面で)

google で「エスケープシーケンスード ESC 色」などで検索して
みて下さい。

>>2072 Ten
うーむ、Windows でメールを読まないので…。

No. 2078 # harap 2001/07/11 (水) 09:53:30
>>2077 68user
ありがとうございました。
お礼が遅くなってすいませんでした。
やってみます。

No. 2079 # るは [E-mail] 2001/07/17 (火) 15:26:59
はじめまして。
最近UNIX-CでNetwork Programmingを始めた者です。よろしくお願いします。
こちらに掲載されているC言語のechoプログラム(echo-server-1.c)を
そのまま書き写して実行したのですが、先頭の1文字しか返ってきません。

read_line()の戻り値が [0 or 1] なので、
94行目で、文字列が1文字だけになってしまいます。
read_line()の戻り値を [0 or 文字数] に修正すればよいと思います。

私の勘違いでしたらすみません(^^;

No. 2080 # 68user 2001/07/17 (火) 15:39:02
>>2079 るは
ありがとうございます。テスト不足で失礼しました。修正しておきます。

最初はちゃんと動いていた気がするんだけど、いつエンバグしたのかなぁ?

No. 2081 # skel.103M [E-mail] 2001/07/19 (木) 16:07:11
いつもお世話になってるskel.103Mです。

>>1978 skel.103M
>>1980 68user
>>1981 skel.103M
このことについて、news:fj.mailに記事が投稿されているのを(今さらなが
ら)発見!:
        Message-ID: <tzzlmmezl9x.fsf@nightmare.hm.taito.co.jp>
…投稿日は2001/06/27(水)となってますね。

No. 2082 # 猫じゃらし 2001/07/29 (日) 15:00:20
はじめまして。
perlを勉強中の者です。
いきなりで恐縮ですが、質問です。

perlのIO::SOCKETモジュールを使ったhttpクライアントを作っているのですが
画像を読み込めないんです。ちなみに、htmlはうまくいっています。
今作っている物では、他サーバーからファイルを読みとり
自分のサーバーに保存という作業をやらせたいんです。
しかし、画像ファイルを読み込むと改行が不要な位置に
改行入ってしまいます。
画像も読み込めるようにするにはどう作りかえたら良いのでしょうか?

ソース
http://uchu.hypermart.net/image.txt

No. 2083 # 68user 2001/07/30 (月) 06:26:03
>>2082 猫じゃらし
ちゃんと環境を書きましょう。Windows ですか?

    1. ヘッダもそのまま 2.gif に出力してしまう。
    2. 改行が入ってしまうなら、Windows でテキストモードになっているのかも。

ということで、

    # ヘッダまでを読み飛ばす
    while (<$remote>){
        last if ( $_ eq "\n" || $_ eq "\r\n" );
    }
    # ここからが画像データ
    while (<$remote>){
        $outdata .= $_;
    }
    open(OUT, "> 2.gif");
    binmode(OUT);
    print OUT "$outdata";
    close(OUT);

でどうでしょう。

foreach を使わず while を使うのは、foreach の () 内はリストを要求する
ので、<$remote> はリストコンテキストで評価され、
  foreach ("1行目のデータ", "2行目のデータ", ..., "最終行のデータ"){
と展開されてしまうからです。よって、
    foreach (<$remote>){
        last if ( $_ eq "\n" || $_ eq "\r\n" );
    }
の時点でファイルハンドル <$remote> から全てのデータを読み
切ってしまうので、last で抜けた後には <$remote> という
ファイルハンドルにはデータが残っていません。

    foreach (scalar(<$remote>)){
で強制的にスカラーコンテキストにするならいいんですが、
この場合は素直に while を使った方がよいでしょう。

No. 2084 # 猫じゃらし 2001/07/30 (月) 14:35:52
>>68user
環境を書き忘れてすいません、マナー違反でしたね、、、
ちなみに、環境はWinMEでActivePerlを動かしている状態です。

さて、68userさんのレスにあったものをペーストして
ソースは下のようになりました。
http://uchu.hypermart.net/image2.txt

これで無事動かすことができました。ありがとうございます。
このHPは、これからも勉強参考にさせてもらいますね。
ではでは、、

No. 2085 # kazu 2001/07/30 (月) 16:17:17
はじめまして超初心者の者です。
質問なのですけど会社で渡されたCシェルのプログラムに

mailx -s

というコマンドがありまして調べても見つかりません。
UNIXのことなどさっぱり分からないので困っています。
知っている人がいたら教えてください。
お願いします。m(__)m

No. 2086 # 68user 2001/07/30 (月) 17:36:39
>>2085 kazu
ちゃんと OS 名やバージョンなどの情報を書きましょう。

> mailx -s
mailx は SystemV 系 UNIX のコマンドです。Linux にも
あるようですが、*BSD にはないはずです (FreeBSD なら
ports で mail/mailx がありますが)。

まぁメールの送信だけなら mail も mailx も同じようなもの
なので、そのまま mail に読み変えればよいでしょう。

No. 2087 # sato.k [E-mail] 2001/07/31 (火) 11:41:58
はじめまして。早速なんですが、UNIXの運用について質問があります。ログインユーザーごとに使用したい文字コードが違うんですが、どのように設定したらよいのでしょうか?教えてください。

No. 2088 # 68user 2001/08/01 (水) 15:09:22
>>2087 sato.k
ログインユーザごとに ~/.cshrc や ~/.profile で
    setenv LANG ja_JP.eucJP
とか
    LANG=ja_JP.eucJP; export LANG
とか書くか、/etc/profile や /etc/csh.cshrc でユーザ名をみて
適切な locale を設定するのはどうでしょうか。

具体的な locale 名や、/etc/ の下のファイル名などは
OS によって違いがあるので、お使いのシステムではどうなって
いるか確認して下さい。

FreeBSD なら /etc/login.conf に各ロケール分のログイン
クラスを作るのもいいかな。

No. 2089 # 68user 2001/08/04 (土) 17:34:26
>>2079 るは
> こちらに掲載されているC言語のechoプログラム(echo-server-1.c)を
> そのまま書き写して実行したのですが、先頭の1文字しか返ってきません。
遅くなりましたが、さきほど直しました。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/echo-server-1.c
ご指摘ありがとうございました。

No. 2090 # 68user 2001/08/05 (日) 04:11:29
UNIX の部屋をやっと CVS に突っ込みました。悲願達成。
    http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/unix/
これで思う存分更新ができます。

    - コンテンツをローカルでも修正し、web サーバでも修正して、
        どっちが最新版かわからなくなる
    - 前回から更新した部分はどこだったろうか? と忘れてしまう
という経験がある方は、CVS で管理してみてはどうでしょうか。
僕はもう CVS なしでは生きていけません。

なお、普通は http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/
のように cvsweb でリポジトリ公開なんてことはしません (笑)
公開しなくても CVS で管理できます。

No. 2091 # 紅の猫 [E-mail] 2001/08/05 (日) 10:11:27
>> こちらに掲載されているC言語のechoプログラム(echo-server-1.c)を
>> そのまま書き写して実行したのですが、先頭の1文字しか返ってきません。
>遅くなりましたが、さきほど直しました。
\nの所に\0を書き込んでる気がします。

No. 2092 # 紅の猫 [E-mail] 2001/08/05 (日) 11:35:58
#2091
>\nの所に\0を書き込んでる気がします。

よく見たら、そんなこと有りませんでした。
訂正します。

No. 2093 # 68user 2001/08/07 (火) 01:10:03
かなりどうでもいい話題なんですが、UNIX の部屋の検索で一件もヒットしな
かったキーワードを調べてみました。対象は 2001 年。括弧内は検索回数。

なんとなく現在足りない情報がわかって興味深かったです。
今後の参考にさせていただきます。

Solaris or SystemV 系 … 特に管理系がいまいち弱くて申し訳ない。
    useradd(541)
    sar(378)
    ufsdump(161)
    pkgadd(146)
    mailx(145)
    dbx(95)
    groupadd(88)
    usermod(74)
    ufsrestore(60)
    usradd(55)
    nawk(54)
    userdel(54)
    pkginfo(54)
    vfstab(50)
    sjtoeuc(40)
    
こんなのふつー載ってるだろ系 … なるべく早く書きます
    ssh(242)
    expr(172)
    scp(149)
    a2ps(108)
    iconv(95)
    chroot(57)
    pushd(52)
    ulimit(49)
    slogin(39)
    rcs(38)
    bz2(36)
    
Windows の用語をそのまま打ち込んだ系?
    rename(171)  mv のところに「Win で言うところの rename」と書いておけばよい?
    tracert(36)  traceroute のところに「Win で言うところの tracert」と書いておけばよい?
    tree(46)  これは find かなぁ。
    
68user の弱い方面系 … 申し訳ない。満足な解説書けません。
    lpr(328)
    arp(194)
    cpio(177)
    iostat(102)
    rsync(79)
    バックアップ(73)
    lpq(64)
    プリンタ(58)
    restore(56)
    mkfs(55)
    mknod(54)  こんなの検索するんだ…
    sccs(53)
    プリント(50)
    lpstat(43)
    snmp(39)
    パーティション(39)
    
これ何? 系 … 誰か教えて。
    snoop(161)
    ipcs(112)
    fdisk(90)
    filec(66)
    ndd(43)
    showrev(52)
    ipconfig(53)
    ioscan(51)
    mpstat(44)
    substr(45)  perl?
    
入力が不適切系 … 全角アルファベットはないのですよ。半角に自動置換しようかしら。
    ls(196)  
    ユーザー(166)  ユーザならあるんですけど
    解凍(150)  展開で統一してます。改善予定
    ftp(127)
    cp(106)
    ln(90)
    ps(85)
    rm(54)
    リダイレクション(49)  その後「リダイレクト」で検索してくれただろうか
    df(48)
    クーロン(43)  これは改善予定
    mv(40)
    csh(35)
    
その他:
    select(91)
    bdf(88)
    atol(85)
    ファイル検索(70)
    logger(68)  需要あるのかなぁ。
    pdf(63)
    ファイル名変更(54)
    flock(54)
    htpasswd(53)  うーん
    samba(43)
    jar(42)  なぜ jar が
    gateway(41)
    access(36)


ちなみに検索にヒットしたキーワードのトップ20はこちら (リンクを
たどったものは除く。訪問者が入力したキーワードのみ)。
      tar(7512)
      grep(3832)
      find(3219)
      ftp(2502)
      ls(2490)
      vi(2370)
      cp(2215)
      ps(1799)
      rm(1773)
      chmod(1677)
      gzip(1528)
      cron(1511)
      ln(1368)
      mount(1352)
      crontab(1330)
      sed(1257)
      make(1188)
      awk(1150)
      mail(1034)
      date(1047)

No. 2094 # rosegarden 2001/08/07 (火) 03:49:29
>>2093 68user
『誰か教えて』の意味勘違いしているかもしれませんが…。
> これ何? 系…誰か教えて。
> snoop(161)
Solaris 標準コマンド tcpdump のような用途で使う Sniffer ですね。
> filec(66)
> ndd(43)
Solaris 標準コマンド。主に、TCP/IP 関係のデバイス
制御に使います。たとえば、TCP ヘッダのシーケンス番号
の生成法もこれで変えられたかとおもいます。
FreeBSD の sysctl に似た感じで使います(不正確ですが)。
> showrev(52)
Solaris の標準コマンド。pkg 管理用です。
showrev -p なんてすると、どんなパッチが当たっているかが
わかります。
> ipconfig(53)
これは多分 win のコマンドじゃないかな?
ifconfig に似た感じの情報を表示します。
このコマンドを ifconfig みたいにインタフェースの
変更用に使えないんでしょうか?
試したけど、うまくいかなかった。
> mpstat(44)
これは Solaris で man mpstat したら出てきましたよ。

No. 2095 # rosegarden 2001/08/07 (火) 03:51:25
>>2094 rosegarden
>> filec(66)
おっと、これは消し忘れていました。これは無視してください。

No. 2096 # スナフキン 2001/08/07 (火) 17:32:26
いつもお世話になっているので、少しでも協力できれば…

>>2093 68user
> fdisk(90)
これって、Linux系だけなのですか?
パーティーションテーブルを操作するコマンドですが…


>>2094 rosegarden
> ipconfig(53)
>変更用に使えないんでしょうか?
表示だけみたいですね。

「Win系はあくまでGUIなんでCUIインターフェースツールは、ホント
におまけ」みたいなポリシーのようです。

てか、あまり役に立ってなさそう…とほほ


ところで「UNIX の部屋」は、管理者向けの意味合いが大きいのでしょ
うか?それとも一般向け?>68userさん

No. 2097 # rosegarden 2001/08/08 (水) 00:37:40
>>2096 スナフキン

> > fdisk(90)
> これって、Linux系だけなのですか?
> パーティーションテーブルを操作するコマンドですが…

*BSD 系の OS ならあると思います。少なくとも、
FreeBSD/i386, OpenBSD/i386, NetBSD/i386 ならあります。
Solaris も x86 系のならあるかと思います。
今見たところ、SPARC 用の Solaris でも
マニュアルはインストールされていますね。

> >>2094 rosegarden
> > ipconfig(53)
> >変更用に使えないんでしょうか?
> 表示だけみたいですね。

そうですか、いや、自分のやり方が悪かったかと、
思っていたのですが、そういう仕様なんですね。

ありがとうございました。

>>2093 68user
それから、いま man したら ipcs は Solaris
にはあるようですね。

No. 2098 # whois 2001/08/09 (木) 07:10:29
IPアドレスとホスト名の説明中にある文章に関して

>しかしその逆の、FQDN はあるが IP アドレスはない、というマシンは
>存在しません。 ネットワークに接続されている全てのマシンには IP
>アドレスが付けられています。

FQDNはあってもIPアドレスがないマシンは存在します。UUCP接続の場合
にはネットワークに接続されていないのでIPアドレスを割当てる必要が
ないからです。

No. 2099 # iteb 2001/08/10 (金) 16:26:44
>これ何? 系 … 誰か教えて。
> ioscan(51)

HP-UXで使いますね。cd-romの装置番号を調べたり、周辺機器の
SCSI IDを調べたりするときに使いました。

参考:
  http://www.calpoly.edu/cgi-bin/man-cgi?ioscan

No. 2100 # 68user 2001/08/11 (土) 04:57:34
>>2094 rosegarden
> 『誰か教えて』の意味勘違いしているかもしれませんが…。
いえ、そういう意味です。みなさまどうもありがとうございます。

>>2096 スナフキン
> ところで「UNIX の部屋」は、管理者向けの意味合いが大きいのでしょ
> うか?それとも一般向け?
両方です。大学などの UNIX ならともかく、PC-UNIX では利用者=管理者な場
合がほとんどでしょうから、両方の知識を身に付ける必要があると思います。


>>2098 whois
> UUCP接続の場合にはネットワークに接続されていないのでIPアドレスを
> 割当てる必要がないからです。
なるほど。しかし、

    UUCP はメール・ニューズ限定のプロトコルである。UUCP の上には
    HTTP も POP も載せることができない。つまり、UUCP はトランス
    ポート層・ネットワーク層に相当し、TCP/IP とは並列関係にある。
        http://X68000.startshop.co.jp/~68user/net/net-1.html
    は、TCP/IP の初歩を解説しているページなので、そこで UUCP に
    言及することは混乱を招く。

と思うのですが、いかがでしょうか。UUCP は使ったことも設定したこともな
いので、間違っていたら指摘お願いします。

No. 2101 # iteb 2001/08/11 (土) 05:35:10
>>2100 68user
>UUCP はメール・ニューズ限定のプロトコルである。

現状はその通りなのですが、名前の通りファイルの転送も出来ます。
以前IIJでAnonymous UUCPでファイルの配布がされていたことが
ありました。1分30円だったかな。

「インターネットに接続されている全ての」ではなく、
「TCP/IPでインターネットに接続され…」であればとりあえず
矛盾は無くなりますが、ちょっと分かりにくいですね。

No. 2102 # よしあき [E-mail] 2001/08/14 (火) 19:18:44
皆さんはじめまして。実は今はじめてCGIをperlで作っていますが、フォームの内容を送信しようとすると以下のようなメッセージが出てきます。
このメッセージを出すことなくメールへの送信は可能でしょうか?
よろしくお願いします。

Sending C:\WINNT\blt9F.tmp to xxxx@xxx.ne.jp Subject:XXXXX Login name is info@xxxxx.com

No. 2103 # スナフキン 2001/08/15 (水) 00:23:56
>>2097 rosegarden
>そうですか、いや、自分のやり方が悪かったかと、
>思っていたのですが、そういう仕様なんですね。
いえ、仕様だと言い切るとまた語弊がありそうなんで濁しておきます(笑)
自分の場合は、あまりにも使えないコンソールなんで、Cygwin使ってます。
でも、うまく設定が出来ないんでDOSと半々かな(^^;

>>2100 68user
>両方の知識を身に付ける必要があると思います。
確かにそうですねぇ。自分はGUIは滅多に立ち上げずに殆どCUIのみで
利用していますが、最近の雑誌を見るとGUI上前提の記事が多いので、
実際にWindowsのような使われ方をしている人の比率は多いのかなぁ?
あ、もちろん複数の環境が有る場合ですが…

>>2102 よしあき
Windows環境でsendmail互換のMTAをperlから利用していると想定して
ですが…

多分そのsendmail互換のアプリが出しているメッセージなので、その
部分に以下のような記述をすれば回避できると思います。
(ん?コレはブラットJってやつかな?)

実際の記述部分が判らないので予想で書きますが、
1. open(MAIL, "sendmail 〜 コマンド |");
2. open(MAIL, "sendmail 〜 コマンド > nul");

「1」コマンドの標準出力を受け取るので、エラーチェックなどを検知する事もできます。
「2」標準出力を強制的にブラックホールに捨てます。

また、質問する時はもう少し詳しく環境とかを書きましょう。

No. 2104 # Asako 2001/08/15 (水) 17:44:18
初めまして。最近CGIの勉強を始めました。(^^)
今まで、フリーで配布されているCGIの改造をしたことは
あったのですが、自分で最初から書けるようになりたいと思っています。

わからないことがあるたびに、本を読んだり、インターネットで検索するのですが
68userさんのページが一番詳しく、わたしの知りたいことが書いてありました。
ありがとうございました。crypt関数とか、半角カナ・機種依存文字問題とか
うまくいかなくて、いきづまっていたので、大変参考になりました。
(日本語特有の問題は、翻訳本にはほとんどでてこないし (^^;)

これからUNIXのことも勉強したいと思っています。
これからもどうぞよろしくお願いします。

No. 2105 # ふくし [E-mail] 2001/08/18 (土) 12:08:21
Perl一般の質問ですみません。
さいきん Word が作った RTF をパースしないといけないハメになったんですが、
VBA はツライので Perl でやろうと思っています。
RTF::Parserというのを見つけてインストールはうまくいったんですが、
ドキュメントがまったくなく、お手上げです。
(TODO: Write a document とか書いてあるのがだいぶ前なので
    投げたのかも、、)
どなたか使い方をご存知の方リンクだけでもご存知の方教えてくださいませんか?

あと、他に Perl で RTF をパースした経験がある方
「やめたほうがいい」という結論に達した方などなど、
この問題に情報がある方はお寄せください。
また、RTF の規格についてわかりやすく書いているリンクなども、、。

あと、あまりにもこの件が掲示板の趣旨を逸脱するようでしたら
すみません、ツッコんでください。(^^;

スナフキンさん>
Cygwin 最高ですよね! 割り切って使うには最高です。
これと Meadow のおかげでやっと Windows と友達になれました。
ところで、1.1 をお使いですよね?
なぜか B20 ベースの解説サイトやソフトが多いのですが、
B20 にくらべて 1.1 は超超超超安定してていい感じです。
わたしはここでお世話になった技術で Apache をコンパイルして
CGI のテストも Windows でしてます!(^o^)

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

No. 2106 # ten 2001/08/20 (月) 18:16:34
Solaris 2.6 で、Sun Workshop 4.2 を使用しています。
事情により境界整列を全く行なわせない指定をしたいので、

$ cc -flags
(snip)
>-misalign 境界整列していないデータのロード/ストアを可能にするコードを生成

を指定しているのですが、意図した様な動作が得られません。
また、
>#program align foo, var
と指定してもダメです。

どうすれば良いのか御存知の方、いらっしゃいますか?

No. 2107 # 68user 2001/08/21 (火) 10:13:44
>>2106 ten
>#program align foo, var
とりあえず program じゃなくて pragma でしょう。あと、試して
ませんが書き方が怪しいのではないかと思います。こちらを参考に。
    http://docs.sun.com/htmlcoll/coll.674.1/euc-jp/CUG/accOptions.html#1407

>>2105 ふくし
> また、RTF の規格についてわかりやすく書いているリンクなども、、。
Rich Text Format は Microsoft が作った規格なので、Microsoft に
仕様書が存在するはずなのですが、見付けられませんでした。もしかしたら
今は別の団体が管理しているのかもしれません。

No. 2108 # CCIE [E-mail] 2001/08/24 (金) 14:53:30
こんちは、お初です。最近Perlはじめました。
ほかの言語はからっきし使えません(TT関西弁ならいけるけど。。。
で、Perlのプログラミングで質問させてもらいます。
テキストファイルで、↓こういうかんじ

        name  age  year
--------------------------
    CCIE   22   2001

みたいな感じのテキストがあって、そこから3行目だけを出力させたいのと
この場合だと22だけを取り出したいっていう2つのことがどうすれば
いいか今格闘中です。
たぶん正規表現かなーっとおもって
オライリーの正規表現見てますがさっぱりで・・・(^^;)
どなたか助言よろしくお願いしますm(__)m

No. 2109 # 68user 2001/08/24 (金) 20:43:26
>>2108 CCIE
> 3行目だけを出力させたい
自分で何行読んだかを数えます。
    $line = 1;
    open(IN, "file");
    while (<IN>){
        if ( $line == 3 ){
            print "これが 3行目の内容です: $_";
        }
        $line++;
    }

> 22だけを取り出したい
$_ に "CCIE 22 2001\n" が入っている状態で、
    ($name, $age, $year) = split(/\s+/, $_);
とすれば $age に '22' が入ります。

\s は空白・タブを表し、\s+ は1文字以上連続した空白・タブを表しますので、
      $_ を1文字以上連続した空白・タブで分割し、それぞれのフィールドを
      $name、$age、$year に代入
という意味になります。

あるいは
    ($name, $age, $year) =~ m/^(.*)\s+(\d+)\s+(\d+)$/;
という方法もあります。^ は行頭、\d は数字、$ は行末を表し、
括弧でくくった部分がそれぞれ $name、$age、$year に代入されます。

No. 2110 # /tk 2001/08/25 (土) 01:04:46
>>2109 68user
> ($name, $age, $year) =~ m/^(.*)\s+(\d+)\s+(\d+)$/;
余計なような足りないような…

      ($name, $age, $year) = m/^(.*)\s+(\d+)\s+(\d+)$/;
若しくは
      ($name, $age, $year) = $_ =~ m/^(.*)\s+(\d+)\s+(\d+)$/;
では無いでしょうか?

No. 2111 # CCIE 2001/08/25 (土) 01:27:38
早々の返事ありがとうございますm(__)m
参考に勉強させてもらいます.
みなさんすごいですね.ってこういうのでつまづいているのは僕だけかな(TT
いまから,↓の$や()や\や+がごちゃごちゃしたものをゆっくり理解していきたいとおもいます.
実は今,これでいうと22の部分をTkのGIFgraphで表現しようと思ってるんです.
テキストファイルが定期的に書きかえられるのでグラフ化したいと思って.
それで,いま撃沈しているところを聞かせていただいたんです.
出きるだけ御迷惑をかけないように自分で努力したいと思いますが,また質問してしまうと思うのでそのときはよろしくお願いします.

No. 2112 # moz 2001/08/27 (月) 15:29:32
はじめまして。68userさんのページはとても勉強になります。時間があったら、全文を熟読したいと思います。(そんな時間ないかもしれませんが。)
それにしても、毎回いろいろな人からの質問に応えることのできる知識に、
少し圧倒されました。自分はまだまだ未熟者です。今後どーしてもわからないことがあったら、質問するかもしれませんので、そのときは、どうかよろしくお願いします。

No. 2113 # スナフキン 2001/08/28 (火) 03:14:24
ふと思ったのですが、CGIへPOSTメソッドでデータを送信した時に
そのCGIでデータを受け無い時(readしない場合)って、そのデータは
どうなるのでしょう?

CGIで、最近流行りのバッファーオーバーフロー対策?として、POST
データサイズを予め調べてから、read で読み込むようにしようと
考えましたが、このような場合は、サーバーOS/ソフト側でバッファ
に一旦溜まるのでしょうか?
それとも、CGIが受け取らない限りOS/ソフト側でデータそのものを
受け取らないのでしょうか?

試しに自環境にあるApacheに、アップロード機能付きの掲示板CGIを
使って約80Mbを送信してみましたが、cgi-lib.pl のエラー?でCGIは
停止したらしく、ps コマンドを見ると、zonbi となっていたため、
httpdがタイムアウト処理?をして切断された結果(だと思う)、ブラウザに
「cgi-lib.pl: Request to receive toomuch data: 84400432 bytes」と
表示され切断されたように見えました。
そして、その状態まで送信は止まらずにブラウザは送信を続けていました。

top や free で送信中のメモリの状態を観察していても変化がなかった
事から、CGIが受け取らないと捨てられてしまうようにも見えますが、
ちゃんと試験が出来ていたのか、自信が無いので正確な所は不明です。

結局、CGIでPOSTデータを受け取らなくても(プロセスが死んでいた為)
ブラウザ自身は送信を続けていたので、どの時点で(OSかApache)データ
を破棄しているのかは判断できませんでした。

そもそもCGI側でオーバーフローを気にしなくても良いならば、それでいい
のですが、どうも動作が判りません。
#それとも実装依存なのかな?

No. 2114 # 68user 2001/08/28 (火) 06:58:35
>>2110 /tk
> 余計なような足りないような…
確かに。補足どうもです。

>>2112 moz
> 質問するかもしれませんので、そのときは、どうか
> よろしくお願いします。
ぜひ回答する側にもまわって下さい :-)

>>2113 スナフキン
> そのCGIでデータを受け無い時(readしない場合)って、そのデータは
> どうなるのでしょう?
実装依存です。TCP 的に言えば、相手側がプロセスが read してくれないと相
手側の OS のバッファにたまります。それがいっぱいになったら書き込み側が
ブロックします。つまり
    print SOCKET "....";
を実行したままずっと止まってしまうということです。

ちゃんと調べたわけではありませんが、一般的にPOST データを全部受け取っ
て CGI に渡す web サーバが 多いような印象を受けます。あくまで印象なの
で、試したわけではありません。

もし
    int sock;
    bind(...);
    listen(...);
    sock = accept(...);
    ... ヘッダ読み込み ...

    if ( fork() == 0 ){
        char *args[]={"/home/user/public_html/cgi-bin/foo.cgi", NULL};
        dup2(sock, 0);
        execvp("cgi", args);
    } else {
        int status;
        wait(&status);
    }
のように、直接ソケットを CGI プロセスの標準入力に渡すような
実装ならば、CGI プロセスが read しないと書き込み側がブロック
するわけですね。

apache の実装がどうなっているかわかったら僕にも教えて下さい。

No. 2115 # 68user 2001/08/28 (火) 07:19:15
>>2114 68user
なんかいろいろとアレなので、書き直し。
    int sock;
    int pipes[2];

    bind(...);
    listen(...);
    sock = accept(...);
    ... ヘッダ読み込み ...

    pipe(pipes);

    if ( fork() == 0 ){
            char *args[]={"cgi", NULL};
            dup2(sock, 0);
            dup2(pipes[1], 1);
            execvp("/home/user/public_html/cgi-bin/foo.cgi", args);
    } else {
            char buf[256];
            int len;
            int status;
            while ( len=read(pipes[0], buf, sizeof(buf) ){
                  write(sock, buf, len);
            }
            wait(&status);
    }
ソケットのデータを CGI プロセスの標準入力に渡し、
CGI プロセスの標準出力を受け取り、そのままブラウザに
返す web サーバもどきです。

No. 2116 # CCIE [E-mail] 2001/08/29 (水) 12:43:34
こんにちは。又お邪魔させてもらいました(^^;)
この前はありがとうございます。うまくできました\(^o^)/
今回は、Perl/Tkなんですがアドバイスよろしくお願いします。m(__)m
リストはこんな感じなんですが・・・
use Tk;

$mw = MainWindow->new;
$mw->title("gifgraph");

$can = $mw->Canvas(-width=400,

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