68user's page 掲示板

Prev< No. 1841〜1880> Next  [最新発言に戻る] [過去ログ一覧]
No. 1841 # ふくし 2001/03/21 (水) 20:46:28
にゃるほど、1 while でがんばります。(ヘンな日本語)
ありがとうございました。

もいっこズにのって質問。
stat や split をリストに代入して1番目と5番めと7番目を
使いたい、とかいうとき、ぼくは他のを $dummy というので
受けていますが、たまに -w で、1回しか使ってないけど
書き間違えてませんかと言われます。
これを言われないような /dev/nul みたいな変数ってないんでしょうか。

No. 1842 # rosegarden 2001/03/21 (水) 23:22:14
>>1834 taka
> >(1) snd ドライバの使用。
> 「4.3-RELESEからsndドライバは使用されない」とおっしゃっていたので
> 将来性を考えて(?)pcmドライバのみ試してみました。
ええ、出来ればその方が良いのですが、しかし、鳴らないものを使っても
いまの taka さんの needs にはあわないだろうということで、
snd ドライバをお勧めしたのです。

しかし、最初は設定ファイルのレベルだと思ったので、
お節介をしたのですが、
まったく役に立たず、時間ばかりとってしまいました。
申し訳ありませんです。

No. 1843 # 68user 2001/03/21 (水) 23:30:56
>>1841 ふくし
    ($dummy, $dummy, $dummy, $num1, $num2) = (0,1,2,3,4,5);
と、一度に複数回 $dummy を使えば
    used only once: possible typo
の warning は抑止できます。あと、
    ($num1, $num2, $num3) = (split(/ /))[1,5,7];
という手もありますが、可読性が低下しますね。

本質的には 「1番目と5番めと7番目を使いたい」という
使い方をせずに
    $foo = $o->getFoo;
    $bar = $o->getBar;
    $baz = $o->getBaz;
などと書くように努めるべきだと思いますが、全ての場面で
それができるわけでもなく、悩ましい限りです。

No. 1844 # ふじ [URL] 2001/03/22 (木) 02:40:55
はじめまして。

いきなりですが、
>これを言われないような /dev/nul みたいな変数ってないんでしょうか。
(undef, undef, undef, $num1, $num2)=(0,1,2,3,4);

こんなのでどうですか?

No. 1845 # rosegarden 2001/03/22 (木) 03:37:21
>>1841 ふくし
>>1843 68user
>>1844 ふじ
つぎのようにすれば文句をいわれませんでした。

#!/usr/bin/perl -w

my ($login, $pass, $uid, $gid) = getpwnam('root');

print "$login:(password):$uid:$gid\n";
exit;

my をとったものと、較べてください。
ちなみに動作環境は perl 5.00503 ないしは perl 5.6.0 です。

No. 1846 # rosegarden 2001/03/22 (木) 06:15:44
>>1845 rosegarden
この他にも

#!/usr/bin/perl -w

use vars qw($login $pass $uid $gid);

($login, $pass, $uid, $gid) = getpwnam('root');

print "$login:(password):$uid:$gid\n";
exit;

などと、use vars で宣言しておけば文句を言われないようです。
詳しくは、perldoc vars してみてください。

No. 1847 # ふくし 2001/03/22 (木) 10:09:46
にゃるほど、

ふじさん>
リスト要素にすれば undef を左辺に持っていけるんですね。
undef = 3; だと怒られますけどね。(当たり前)
これは言いたいことを強烈に表現できているような気がします。

rosegarden さん>
my や use vars を使った方法もいいですね。
この問題がよく出てくるのはファイルの stat を受けるときなんですが、
こういう意味のある変数のときは変数名をつけておいて使わない
(そのうち使うかもしれないので)
というのが便利なので、使わせていただきます。

みなさんどうもありがとうございました。勉強になるー

No. 1848 # d-jiro 2001/03/22 (木) 18:54:15
いつも拝見しながら勉強させていただいています。
Perlを使ったソケット通信について質問があります。

HTTPSサーバに対してのソケット通信です。

http://X68000.startshop.co.jp/~68user/net/http-2.html
にあるように、通常のソケット通信はできたのですが、
相手がHTTPSになるとヘッダの都合か、まったくうまくいきません。
たとえば、

自分のサーバ →POST→ 相手のCGIのあるサーバ(https)
                                                                      ↓
ブラウザ上にデータを表示 ← 相手が出力したデータを取得

このようなイメージです。
通常のHTTPでのソケット通信の場合、出力するヘッダは、
  "POST /sample.cgi HTTP/1.0\r\n"
  "\r\n(空行)"
  "(POSTで送信するデータ群)"
このような感じだと思うのですが、HTTPS相手だと
まったく受け付けてくれません・・・。
これってSSLを相手が利用している以上、不可能なことなのでしょうか?
皆様の知識と知恵を貸してください、お願いします。

No. 1849 # 68user 2001/03/23 (金) 13:22:14
>>1848 d-jiro
> このような感じだと思うのですが、HTTPS相手だと
> まったく受け付けてくれません・・・。
としたいなら、自前で相手サーバのポート 443 (https の
ポート番号) に繋げて、自前でデータを暗号化してから
ソケットに送り、受け取ったデータは復号化する必要が
あります。これを全部やるのはとてもとても面倒なので、
モジュールを使いましょう。

まず、OpenSSL (http://www.openssl.org) をインストール
してください。で、
    http://www.cpan.org/modules/by-module/Net/
から Crypt-SSLeay モジュールを入れて下さい。これは LWP を
使うことを前提としたもののようです。

あるいは、Crypt-SSLeay モジュールの代わりに Net::SSLeay
というモジュールもあり、socket like に使えますが、現在は
保守されていないのかもしれません。

# http://www.cpan.org/modules/by-module/Net/Crypt-SSLeay-0.23.readme
# http://www.cpan.org/modules/by-module/Net/Net_SSLeay.pm-1.05.readme

なお、どちらも使ったことがないので、上に書いたことは
全て想像です。成功したか失敗したか結果を教えて下さい。

>>1844 ふじ
そうか、undef っちゅうのがありましたね…。

>>1846 rosegarden
これとは逆に、use vars すると warning が出なくなって
困ったことがあります (そのときは warning を出してほしかった)。

No. 1850 # whoisおしえてください 2001/03/23 (金) 16:43:32
whoisのプログラムをプログラムソースを探しているのですが、
どちらにあるかご存知ありませんか?
できればperlがいいのですが。

よろしくお願いいたします。

No. 1851 # 68user 2001/03/23 (金) 17:38:02
>>1850 whoisおしえてください
> whoisのプログラムをプログラムソースを探しているのですが、
    perl 版
        http://ring.asahi-net.or.jp/pub/lang/perl/CPAN/authors/id/D/DH/DHUDES/

    ついでに C言語版 (FreeBSD の whois。最近のは IPv6 化されています)
        http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/src/usr.bin/whois/whois.c

    whois プロトコル
        http://ring.asahi-net.or.jp/pub/doc/RFC/rfc1834.txt

てなところでしょうか。

No. 1852 # d-jiro 2001/03/23 (金) 23:08:37
>>1849 68user
>http://www.cpan.org/modules/by-module/Net/
>から Crypt-SSLeay モジュールを入れて下さい。これは LWP を
>使うことを前提としたもののようです。

こちらの方法で試してみることにします。

おそらく数日後に結果が報告できると思います。
つまづきながらですが、また質問させていただくかもしれません。
ありがとうございました。

No. 1853 # PHP 2001/03/25 (日) 03:06:26
こんばんは、現在検索エンジンを作成中ですが、キーワード入力の所で
いきなりつまずいています。
良く検索エンジン(goo,infoseek)等で検索文字を複数キーワード入力
し、キーワード間はスペースもしくは”|”パイプで区切る事をします。
単一キーワードは簡単に出来るのですが、このスペース区切りで
複数キーワードを引数にする方法がわかりませんが、宜しければお教え
いただけないでしょうか?

No. 1854 # d-jiro 2001/03/25 (日) 20:00:22
先日HTTPS接続のことで質問したものです。

HTTPS相手のPOSTでのCGI接続は、
Crypt-SSLeayモジュールを導入し、
LWPを使うことで解決しました。
部分的な引用でわかりにくいかもしれませんが、

$req = HTTP::Request->new( POST => "$url" );
$req->content_type('text/plain');
$req->content('$postdata');

とすることで、HTTPSだと意識することなく
レスポンスをもらうことができました。

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

No. 1855 # 68user 2001/03/26 (月) 22:55:38
>>1854 d-jiro
> HTTPS相手のPOSTでのCGI接続は、Crypt-SSLeayモジュールを導入し、
> LWPを使うことで解決しました。
それはよかった。こちらの環境でも試してみましたが、
うまくいったようです。

>>1853 PHP
> 一キーワードは簡単に出来るのですが、このスペース区切りで
> 複数キーワードを引数にする方法がわかりません
複数キーワードに分割というのは
    $keyword = 'foo bar baz';
    @keywords = split(/\s+/, $keyword);
といったことですか? あるいは、複数のキーワードで検索するという
ことですか? 後者ならば
    http://wakusei.cplaza.ne.jp/twn/wwwsrch.htm
というのが参考になるかもしれません。

この CGI スクリプトは素直な書き方になっていますが、サーバへの
負荷はかなりのもので、実用には向きません。

最初のとっかかりとして、参考程度にとどめておくのがいいでしょう。
高速化のヒントは eval です。

No. 1856 # 68user 2001/03/27 (火) 00:02:52
http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?howtouse
    ・環境はできるだけ詳しく
    ・マルチポスト禁止
    ・回答をもらったら結果を報告する
という注意点を追加しました。この場でいちいち注意したくはないので、
質問する前に是非ご一読下さい。

また、各メッセージの「No.1504 # 68user」などという表示の「#」を
クリックすると、
    http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1500-1600#1504
というリンクに飛ぶようにしました。

# 更新履歴:
# http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi

やはり設計が甘かったようで、この掲示板に美しく機能拡張するのは
もう無理みたいです。スクラッチから書き直したいけど、きれいに
書ける自信がない…。

No. 1857 # ケンMK2 2001/03/27 (火) 18:37:47
初めて書き込みをします。
早速ですが質問があります。

現在osをredhat6.2Jでsendmail8-9-3を使いメールサーバーを構築中です。
そこでcgiを使いメールを発信させると受信したメールのヘッダーのRecievedの部分の
Fromがnobody@localhostとなってしまいます。。
こちらとしてはホストのアドレスを載せたいのですが・・・。

cgiは、

#! /usr/bin/perl

$toname = 'xxx@aaa.bbb';
$fromname = 'yyy@ccc.ddd';
    open(MAIL, "| /usr/lib/sendmail -t -i -f yyy") || die;
    print MAIL "from:$fromname\n";
    print MAIL "to:$toname\n";
    print MAIL "Subject: TEST\n";
    print MAIL "Content-Type: text/plain;\n\n";
    print MAIL "TEST\n";
    close(MAIL);

print "Content-type: text/html\n\n";
print <<END_OF_DATA;
<HTML>
<BODY>SendMail $err</BODY></HTML>

END_OF_DATA

exit;

fromで指定したほうがもちろんサーバー側で,toで指定した方がクライアント側です。
sendmail.cfの編集にはsendmail.defを使っています。

はたしてcgiが悪いのかsendmailの設定がまずいのでしょうか?
sendmail.defの設定がまずいなら一体どこを変えればいいのか。
ご教授の程をお願いいたします。

No. 1858 # 68user 2001/03/27 (火) 20:26:52
>>1857 ケンMK2
> Fromがnobody@localhostとなってしまいます。。
これってやっぱりまずいのかなぁ? Received に名前解決不可能な
サーバ名が書いてあるメールって結構ありますよね。でも、それは
ファイアウォールの中からだから許されるのかな。さすがに
localhost はまずいかもしれない。

sendmail をまともに管理したことがないため正しい解決策はわかり
ませんが、手元にある sendmail.def (sendmail-v8.def をいじった
もの) には、
    OFFICIAL_NAME='foo.bar.com'
とあります。その他は特に設定していません。それを元に生成した
/etc/sendmail.cf には
    Djfoo.bar.com
と書いてあります。
    Dj(サーバの FQDN)
ですね。

あと、ユーザ名が nobody になるのもどうなんでしょうねぇ。
他の行に envelope from yyy などと -f で指定したユーザ名が
書いてあると思うので、それはそれでよいような気もするんですが…。
ちなみに手元の環境でも envelope from nobody となりますが、
僕がいいかげんに管理している sendmail なので、正しいか
どうかはかなり怪しいです。

No. 1859 # ふくし 2001/03/27 (火) 20:42:53
ケンさん>

わーい。回答が書けるー
わたしは、このようにしています。

$from = "kaori.iida\@morning.musume";
$to = "natsumi.abe\@morning.musume";

open MAIL, "|/usr/local/bin/nkf -j |/usr/sbin/sendmail -t -f $from" or die $!;
print MAIL <<EOM;
To: $to
From:$from
Subject: こんにちはー
元気だべさ。
EOM
close MAIL;

これで、次のようなメールが届きます。

To: natsumi.abe@morning.musume
From: kaori.iida@morning.musume
Subject: こんにちはー

元気だべさ。

ポイントは、-f パラメタで渡すのはエラーのときの戻りメールの宛て先で、
From: フィールドをメールの中に再度書かないといけないようです。
なお、スクリプトは EUC で、メールは JIS でないと文字化けするので、
nkf -j をかましています。

No. 1860 # 68user 2001/03/28 (水) 02:53:42
>>1858 68user
>> Fromがnobody@localhostとなってしまいます。。
> これってやっぱりまずいのかなぁ? Received に名前解決不可能な
> サーバ名が書いてあるメールって結構ありますよね。でも、それは
> ファイアウォールの中からだから許されるのかな。さすがに
> localhost はまずいかもしれない。
jp.FreeBSD.org の sendmail 君が付けた received も localhost に
なっていました。少なくともあそこは変な設定になってはいない
だろうということで、問題ないんじゃないでしょうか。

No. 1861 # すな 2001/03/28 (水) 21:56:36
質問では有りませんが、気になったもので・・・

自分の借りているレンタルサーバーのログに以下のような行がありました。

xxx.xxx.xxx.xxx - - [28/Mar/2001:20:00:52+0900] "GET http://www.intel.com/ HTTP/1.1" 200 1846 "-" "Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)"

これってどう解釈すればいいのでしょう?
当然ですが該当するURLにファイルはありません。

試しに自己保有のLinux版Apacheに telnet でいろいろ試してみましたが、
ステータス 200 が出ることは有りませんでした。

単にサーバーのログ記録ミス(エラー?)なのでしょうか?
こちらでも、こんなログが残る事は有りましたでしょうか?
なんとなく気持ちが悪いので、判る方がいらっしゃれば教えてください。

No. 1862 # 68user 2001/03/28 (水) 22:17:58
>>1861 すな
> 試しに自己保有のLinux版Apacheに telnet でいろいろ試してみましたが、
> ステータス 200 が出ることは有りませんでした。
FreeBSD 4.1-RELEASE + apache-1.3.12 で、
    GET http://www.intel.com/ HTTP/1.0
でステータス 200 が出ました。ブラウザを普通に使っていれば、
PATH は必ず / から始まるはずですが、先頭が / でない PATH を
要求すると 200 が返るんですね。これって仕様かしら?

No. 1863 # すな 2001/03/28 (水) 23:46:17
>>1862 68user
あら・・・
環境が関係するようですねぇ。

Vine Linux 1.1CR
Server version: Apache/1.3.3 (Unix) (Red Hat/Linux)
な環境で、
$ telnet localhost 80
GET http://www.yahoo.co.jp/ HTTP/1.0
とすると、
HTTP/1.1 302 Found が返り…

GET http://www.yahoo.co.jp/ HTTP/1.1
とすると、 400 Bad Request が返りました。

最初のログでは、HTTP/1.1 となっていたのに何故?
アクセス元は、JPNICとINTERNICで調べられなかったので、新手の
攻撃かとも考えましたが違うようですね。

このログが出たApacheのバージョンは、Server: Apache/1.3.6 (Unix)
でした…

さらに上のサーバーで、
GET http://www.yahoo.co.jp HTTP/1.0
としたら、/ にした際のドキュメントが返って来ました。
もう一つおまけにWin版1.3.12のApacheでもステータス200で同じ動作でした。
#この動作は何???

う〜ん、すっきりしないなぁ…
ともあれ試してもらってありがとうございました。
# サーバーの管理者に聞けば判るのかなぁ…

No. 1864 # 68user 2001/03/29 (木) 03:17:23
>>1863 すな
> GET http://www.yahoo.co.jp/ HTTP/1.1
> とすると、 400 Bad Request が返りました。
HTTP/1.1 では、Host ヘッダが必須ですが、これは大丈夫ですか?

    http://X68000.startshop.co.jp/~68user/net/http-4.html
        なお、HTTP/1.1 を使う場合は Host ヘッダを必ず付けなくてはいけません。

> / にした際のドキュメントが返って来ました。
うちもそうでした。

apache のバージョンに依存するようなので、本当のところを
調べたければ http://www.apache.org/websrc/viewcvs.cgi/
更新履歴を調べるのがよさげですが、時間がとれない…。

あるいは src/CHANGES に、変更理由が書いてあったりするかも
しれません。

No. 1865 # はてな 2001/03/29 (木) 09:38:10
初めまして。
UNIXは、初めて触ってたのですが、本やHPで調べても答えがわからないので、質問させてください。

リモートで、クライアントのWin98にX for Windowsをインストールしましたが、文字化けを起こしました。FON形式に変換されています。
相手のソラリスにはOpen WindowとX Windowがインストールされてます。
クライアントがアクセスするとOpen Windowが立ち上がるよう、設定されていましたので、
/usr/openwin /bin/openwin

/usr/openwin /bin/Xに書き換えたんですが、状態は相変わらずです。
文がおかしいのでしょうか?

よろしくお願いします。

No. 1866 # なべぞう 2001/03/29 (木) 12:57:42
はじめまして。突然ですが、ポート番号の対応表について質問させ
てください。

こちらのサイトに「Windows なら C:\windows\services です。
ここに載っているプロトコルは「well-known port」と言えるでし
ょう。」とあります。

しかし、C:\windows\servicesが見当たりません。なお私はwin
NTを主に使用しています、バージョンによって異なるものなんで
しょうか!?

No. 1867 # すな 2001/03/29 (木) 13:40:20
>>1864 68user
>HTTP/1.1 では、Host ヘッダが必須ですが、これは大丈夫ですか?
あたたた…
忘れていました。
で、host www.yahoo.co.jp:80 として再度やってみましたが同じ結果でした。
サーバー管理者へメールで問い合わせてみましたので解決したら報告します。
・・・と書いている所へ管理者からメールが。

クライアントがURL欄に「http://www.intel.com/http://www.intel.com/
と誤って記入すると、そのようなログが記録されます。
との返答。「えっ?」と思いながらやってみると、

GET http://www.yahoo.co.jp HTTP/1.1
host www.yahoo.co.jp:80

ログ内容
"GET http://www.yahoo.co.jp HTTP/1.1" 400 387 "-" "-"

/ からはじまらないパスを記録させる事は出来ましたが、やはり
ステータス 400 でした・・・
う〜ん、眠れなくなりそうなんでこの件は諦めます(笑)

>http://www.apache.org/websrc/viewcvs.cgi/
↑これは知りませんでした。時間があるときにじっくり見てみます。
# いつもながら何かしら勉強させて頂いてますm(_ _)m

>>1866 なべぞう
WinNTの場合は、C:\WinNT\system32\drivers\etc\SERVICES
です。このフォルダには、HOSTS や LMHOSTS も存在します。
スタートメニューの「検索」を最大限に活用すると便利ですよ。

No. 1868 # 68user 2001/03/30 (金) 00:25:20
/~68user/unix/pickup に早稲田大学からの連続アクセスがあり、OS の
リソースを食い潰して open・fork などに失敗してサーバエラーが頻発
していました。load average が 20 近くまで上がってました。

とりあえず pickup は使用不可としましたので、あしからず。
同時に実行するプロセス数を制限する機能を追加したら使用可能に
します。

>>1867 すな
> host www.yahoo.co.jp:80
ではなく、host: www.yahoo.co.jp:80 です。`:' が足りません。

> クライアントがURL欄に「http://www.intel.com/http://www.intel.com/
> と誤って記入すると、そのようなログが記録されます。
> との返答。「えっ?」と思いながらやってみると、
apache-1.3.12 では、ログに
    "GET /http://www.yahoo.co.jp HTTP/1.0" 404
と吐かれていました。その管理者の返答はほんとかなぁ? もし本当
ならば、apache にバグがあって、apache-1.3.12 では修正されて
いるということですね。

> WinNTの場合は、C:\WinNT\system32\drivers\etc\SERVICES です。
なるほど。この文章をそのまま該当部分に追加してよいですか?

>>1865 はてな
> リモートで、クライアントのWin98にX for Windowsをインストール
> しましたが、文字化けを起こしました。FON形式に変換されています。
文字化けの件はわかりませんが、これは X for Windows という商品名の
Windows 用 X サーバですか? Windows 側で X サーバが起動しているなら、
Solaris 側で openwin や X を実行する必要はありません。なぜなら、
openwin や X は X サーバだからです。Solaris 側で実行すべきなのは
kterm などの X クライアントです。

でなくて、なにかしらの仕組みがあって Solaris 側で X サーバを
実行すれば Windows 側で表示されるようなアプリケーションで
あるなら失礼。そのようなアプリは さらに輪をかけてわかりません。

No. 1869 # すな 2001/03/30 (金) 13:46:47
>>1868 68user
>ではなく、host: www.yahoo.co.jp:80 です。`:' が足りません。
ステータス 400 はこれが原因でした。嘘書いてごめんなさい。m(_ _)m

で、該当サーバーに
GET http://www.yahoo.co.jp:80 HTTP/1.1
host: www.yahoo.co.jp:80
とした所、
"GET http://www.yahoo.co.jp:80 HTTP/1.1" 200 1934 "-" "-"
のログが記録された事を確認しました。
この結果は、68userさんと同じくドキュメントルートが出力されました。
Apache1.3.3の方も同じ結果でした。

>>1862 68user
>PATH は必ず / から始まるはずですが、先頭が / でない PATH を
>要求すると 200 が返るんですね。これって仕様かしら?
動作からするとその様ですね。

>>1868 68user
>その管理者の返答はほんとかなぁ?
Apacheの出力結果を見ると管理者の言っている事は間違っているようです。
管理者といってもテクニカルサポートの「誰か」だし、適当にあしらわれ
たのかも?

>なるほど。この文章をそのまま該当部分に追加してよいですか?
もし、サービスパックなどにより変更される場合は判りませんが、
少なくとも自分の環境では上記のフォルダに存在します。
WinNT 4.00.1381 SP5

ちなみに、このフォルダには以下のファイル群が含まれます。
HOSTS
LMHOSTS
NETWORKS
PROTOCOL
SERVICE

drivers\etc
というフォルダに格納するあたり、UNIXを意識しつつドライバーでは
無い内容を格納するのは、M$の苦しい所でしょうか…読みすぎ?;-p

No. 1870 # hsj 2001/03/30 (金) 20:49:22
>>1869 すな
> Apacheの出力結果を見ると管理者の言っている事は間違っているようです。
おそらくそのユーザは、外部利用可能なプロキシを探して
そのサーバにアクセスしたんじゃないでしょうか。
例えばIEにプロキシとしてそのサーバのIPアドレスと
ポート80をセットして、適当なサーバにアクセスしてみると
リクエストラインはこういう感じ↓になるので、
GET http://www.yahoo.co.jp/ HTTP/1.0
そう言うログが残ることになると思います。

No. 1871 # すな 2001/03/30 (金) 21:59:39
>>1869 すな
はじめまして>hsjさん
>おそらくそのユーザは、外部利用可能なプロキシを探して
おぉ!なるほど。
IE5でプロキシ設定を施してアクセスした所、最初に疑問になったログ
結果と、ブラウザバージョン以外同じ結果となりました。
はぁ、なんかすっきりしました(笑)

片っ端からアクセスして調べているんでしょうか?
ご苦労様なことです(^^;

自分はフレッツISDN接続なんですが、ここ3〜4ヶ月ルーターのログに
明らかにアタックと思われる攻撃が増えたので、過敏になっていました。
情報ありがとうございました。>hsjさん

No. 1872 # ケンMK2 2001/03/30 (金) 22:39:59
どうもレスが遅くなり申し訳御座いません
>>1860 68user
>jp.FreeBSD.org の sendmail 君が付けた received も localhost に
>なっていました。少なくともあそこは変な設定になってはいない
>だろうということで、問題ないんじゃないでしょうか。
へ〜そうなんですか・・・。
私もあれから試行錯誤しましたが、どうにもならず、結局気にしないこと
にしました(笑)
と言っても諦めるわけでなく、sendmail.cfを直接弄って何とかできるの
では・・・と思いたちましたので、そちらの方法をしばらく模索していこ
うと思います
それではご迷惑をお掛けいたしました

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

No. 1873 # dio [E-mail] 2001/03/31 (土) 02:34:14
こんにちは、初めまして。
排他処理のことを読ませていただきまして、
フリーのCGIスクリプトに自分でシグナルに関する部分を追加しようと思いました。
ここでは
$SIG{PIPE} = \&lock_off;
というようにしておられますが、他のところでは、
$SIG{'PIPE'} = 'lock_off';
といった感じに書いていました。
これらは同じ意味なのでしょうか?(\&というのがよくわかりません)
それから、こういったハンドラの定義は、ソース中のどの位置に書いても
同じなのでしょうか。最初の方に書いた方がいいのでしょうか?
そして、ハンドラの中で変数の値を参照する場合、
その変数の初期化前にそのハンドラを書いて問題ないでしょうか?
sub lock_off {
      if ($lockkey) { &unlock; }
      exit;
}
・・・
$lockkey = 1;
といった感じで。
Perlはまだよくわかっていないので、常識なことなのかもしれないですが、
よろしくご教授お願いします。

No. 1874 # なるっち 2001/04/01 (日) 01:01:27
はじめまして。
CGIで環境変数を取得していると、「(compatible; MSIE 5.5; 〜〜」等で表示されるはずが、「好きな名前〜〜〜」でアクセスす人がまれにいるのです。これはどううことなのでしょうか?

No. 1875 # dio [E-mail] 2001/04/01 (日) 15:10:12
>CGIで環境変数を取得していると、「(compatible; MSIE 5.5; 〜〜」
>等で表示されるはずが、「好きな名前〜〜〜」でアクセスす人がまれにい
>るのです。これはどううことなのでしょうか?
クライアント(ブラウザ)がサーバに送るUser Agent 文字列を自由に設定できるソフトを使っているからではないでしょうか。
私の使っているフリーのタブブラウザ、「DonutR」でも、UserAgentを
自由に設定できます。

No. 1876 # 68user 2001/04/01 (日) 16:24:11
>>1873 dio
> $SIG{PIPE} = \&lock_off;
\& は関数へのリファレンスです。ちなみに
    $SIG{PIPE} = sub { unlink($lock_file); exit; }
と等価です。

> $SIG{'PIPE'} = 'lock_off';
これだと、シグナルハンドラ lock_off の関数定義が同一ファイル
内にないといけません。別ファイルに sub lock_off を書いて、
それを require している場合は動かないということです。

関数へのリファレンスを使えば、どこで関数が定義されて
いようと動きます。

これらの事柄はラクダ本に書いてありますので、もちお持ちで
ないなら、購入されることをお薦めします。

> ハンドラの中で変数の値を参照する場合、その変数の初期化前に
> そのハンドラを書いて問題ないでしょうか?
これは、ハンドラ特有の問題ではなく、関数一般の話になります。
    #!/usr/bin/perl
    &lock_off;
    sub lock_off { print $lockkey }
    $lockkey = 1;
    exit;

    #!/usr/bin/perl
    $lockkey = 1;
    &lock_off;
    sub lock_off { print $lockkey }
    exit;
では、前者はよろしくないことはわかりますね。

シグナルハンドラの場合も、%SIG にセットしてしまうとその後いつ
シグナルハンドラが呼ばれるかわからないので、%SIG にセットする
前に必要な変数を全て設定しておきましょう。

No. 1877 # dio [E-mail] 2001/04/01 (日) 17:12:52
>\& は関数へのリファレンスです。ちなみに
>・・・・・・
>関数へのリファレンスを使えば、どこで関数が定義されて
>いようと動きます。
なるほど
そういう違いなのですか。

>シグナルハンドラの場合も、%SIG にセットしてしまうとその後いつ
>シグナルハンドラが呼ばれるかわからないので、%SIG にセットする
>前に必要な変数を全て設定しておきましょう。
わかりました。
どうもありがとうございます。

No. 1878 # 68user 2001/04/03 (火) 17:40:08
http://messages.yahoo.co.jp/bbs?.mm=CP&action=m&board=1835092&tid=echoa4ka4da4a4a4f&sid=1835092&mid=4
> ↓には、「ping への応答」と書いてます。
> http://www.nspl.co.jp/Solaris/Security/inetd.html

誤りです。ping に応答するのは ICMP reply です。TCP/UDP の echo は、
    http://ring.ocn.ad.jp/pub/doc/RFC/rfc862.txt
を参照のこと。
    A very useful debugging and measurement tool is an echo service.
ってことですね。人様が直接使うものです。

…と yahoo BBS に書こうと思ったけどできなかったので、どなたか
伝えて下さい。

No. 1879 # 68user 2001/04/06 (金) 00:15:45
>>1868 68user
> とりあえず pickup は使用不可としましたので、あしからず。
> 同時に実行するプロセス数を制限する機能を追加したら使用可能にします。
使用可能になりました。ちゃんと制限が効いてるかどうかは
試してませんが。

>>1878 68user
> …と yahoo BBS に書こうと思ったけどできなかったので、
> どなたか伝えて下さい。
どもです>dio さん (ですよね?)

No. 1880 # dio [E-mail] 2001/04/06 (金) 00:54:56
>どもです>dio さん (ですよね?)
あ、はい
このページ参考にさせてもらったり、
お世話になったので。

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