68user's page 掲示板

Prev< No. 3889〜3969> Next  [最新発言に戻る] [過去ログ一覧]
No. 3889 # スナフキン 2004/07/24 (土) 17:48:01
書き忘れましたが perl でのお話です。

No. 3890 # 68user 2004/07/24 (土) 18:18:52
>>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);
すればよいと思いますが、そもそも何をやりたかったのかによりますかね。

No. 3891 # スナフキン 2004/07/24 (土) 20:47:20
!!!なんとなるほど!シンボリックリファレンスと解釈されたとは・・・
すばやい回答大変助かりました。ありがとうございます。

このルーチンはいくつかある他のプログラムの一部なんですが、既に$FORM{〜}
でアクセスする箇所が沢山有ったので、それらを変更する事なくという部分に
こだわりすぎました。

cgi-lib.pl とかを見るとparse時に \0 をセパレータにしてスカラーに入れて
いますが、そうではなく同名変数の配列にぶち込んじゃおうと思ったのですが
他の方法をかんがえてみます。

No. 3892 # じぇぃじぇぃ 2004/07/24 (土) 23:00:26
超初心者の質問でごめんなさい。

コマンドを入力すると、Command not found って、表示されるんです。
スペルは間違っていないのに。何が原因なのでしょうか?

また、コマンドを入力した時に、値段のような文字が、ずらっと表示される事が
あります。例:\245\242\245\257\245\273\245\271\270\242\244\254\244\242。
このようなことが起きる原因は、何でしょうか?

対処方法を教えて下さい。お願い致します。

No. 3893 # has 2004/07/25 (日) 01:15:39
>>3892 じぇぃじぇぃ
ネット上の文字のやりとりだけで環境を把握するのがちょっと大変そうですが…。

> コマンドを入力すると、Command not found って、表示されるんです。
結論から言うと、path変数が正しく設定されていないのが原因とは思いますが…。

とはいえ即解決には至れないので、まず回答にあたって次を教えてもらえますか?
・コマンドを入力するまでにどんな手順を踏むように指示されている?
・それに対しコマンドを入力するまでに実際にはどんな手順を踏んでいる?
・コマンド名は何?

> コマンドを入力した時に、値段のような文字が、ずらっと表示される事があります。
これも次を教えてください。
・使っている機器はPC?
    ・WindowsからTelnetやTeraTermなどを実行して開いたウィンドウで起こっている?
    ・それともPC上では直接Solarisやlinuxが動いていてそこで起こっている?
・機器はPCではなく大学の研究室かどこかのワークステーション?
・機器はワークステーションではなくX端末?


なお、この書き込みに関係なくすでに解決した場合でも、何をどうしたらうまく
できたのか、必ずここに書き込みしてください。

とりあえず今回は、質問するというだけでも一苦労だったとは思いますが、
回答する側もスムーズかつ効率的に解決する技術を習得しようとしている面も
あるので、質問する側としてもその時点でわかっていることをできるだけ
きちんと伝えることが大切かと思います。ぜひ実践していってください。

# まあそうは言っても、何が前提で、伝えるべき情報がどれなのかがわからなくて
# 余計困っているんだとは思いますが

No. 3894 # 68user 2004/07/26 (月) 00:11:55
ネットワークプログラミングの基礎知識に
    「*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

No. 3895 # じぇぃじぇぃ 2004/07/26 (月) 01:03:07
has 様。

ご丁寧なお返事ありがとうございます。

・コマンドを入力するまでにどんな手順を踏むように指示されている?
・それに対しコマンドを入力するまでに実際にはどんな手順を踏んでいる?
→サーバーにログインして、プロンプトを表示させる。
    (ここまではOK)その後、以下のような操作(コマンドの入力)を
    実行しています。
    
    nslookup www.○○○○○○.ne.jp
                                    ↓
                        (見つからない)
                                    ↓
    find /usr/bin -name nslookup -print
                                    ↓
                        (見つからない)
                                    ↓
    find /usr -name nslookup -print
                                    ↓
                        (見つからない)

・コマンド名は何?
→nslookup

・使っている機器はPC?
→Windows Xp

No. 3896 # じぇぃじぇぃ 2004/07/26 (月) 01:05:34
追記。


・機器はPCではなく大学の研究室かどこかのワークステーション?
→自宅PCです。

・機器はワークステーションではなくX端末?
→ワークステーション・X端末とは何でしょうか??


ほんとに、まぬけな答えをしてたら、ごめんなさい。
よろしくお願い致します。

No. 3897 # has 2004/07/27 (火) 04:06:18
>>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等で調べてみてください。

No. 3898 # zsh 2004/07/27 (火) 12:36:47
>>3895 じぇぃじぇぃ
findコマンドでnslookupコマンドを検索されたようですが、
ここでの「見つからない」は、findコマンドが見つからなかったのか
findの結果、nslookupが見つからなかったのか判らないですね。
こういう場合は、実行ログを貼り付けた方が伝わり易いですよ。

No. 3899 # jeiu 2004/07/27 (火) 19:41:04
68user殿
ご回答ありがとうございます。返事がおくれて失礼しました。
しつこいようですがまた質問をさせてください(これで最後にします)。

教えていただいた暗号スイートですが、SSL_CTX_set_cipher_listで
複数指定はできないのでしょうか(リストというからには複数できるような...)。

No. 3900 # 68user 2004/07/27 (火) 23:01:40
>>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.
とあります。

なのにこういう質問が出てくるのはなぜですか?

No. 3901 # スナフキン 2004/07/28 (水) 01:30:56
不要かもしれませんが結果報告です。

受け取ったデータを一次ファイルに格納して再読み込みする仕組みだったので、
配列に格納せず他のデータをタブで区切って追加させて、再読み込み時に

my($name, $value)=split("\t", $record, 2);

と split オプションを追加して、複数のデータを処理させましました。

cgi-lib.pl では \0 で、この掲示板では "," で区切っているので、別の方法を
と思いましたが、変更箇所を最小限にするために結局この形にしました。

リファレンスは苦手なんで敬遠してましたが、これをきっかけにまじめに勉強
しようと思います。助言ありがとうございました。

No. 3902 # jeiu 2004/07/28 (水) 15:56:11
68user殿
失礼しました。
日本語訳のページをのぞいていました。

「コロンで分離する」と理解しました。

No. 3903 # かりり [E-mail] 2004/07/31 (土) 20:55:06
こんにちは暑中お見舞い申し上げます。

覚えているかどうかは分かりませんが
今から7年前くらいにNETで多大な迷惑を
おかけしたものでございます。当時CGIって何ですか?
とか言っていた私も今では大手プロバイダでシステム
いじってたりします・・・。玉に誰にも聞けない初歩的(?)
な事があると、何故か68user様のサイトを参考にしてしまい
頭をすっきりさせているしだいであります。ずっと変わらず
存在しているサイトというのは私にとってとても貴重な物でして
上手く言えなくて申し訳ございませんが
どうもありがとうございます。これからも利用させていただきたく存じます。

掲示板の書き込み内容としてそぐわないのは重々承知でございますが
他にコンタクトをかける手段を持ち合わせておりませんもので
ご迷惑をおかけいたします。 失礼いたします。ニンニン。

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

No. 3904 # 68user 2004/08/02 (月) 03:04:19
>>3903 かりり
お久しぶりです。お元気そうでなによりです。SEGA BBS で
遊んでたのは 7年も前なんですねぇ。

> CGIって何ですか?
は忘れましたが、「タバコを吸って地球温暖化になったらどう
するんですか?」と言われて困ってしまったのはよく覚えています。

IT 関連の職につかれましたか。ちなみにわたしは SE なのか
プログラマなのかよくわからんのですが、とりあえず Perl や
C や Oracle や Pro*C や PL/SQL や Java などと たわむれる
毎日です。

「ここが間違ってる」というご指摘や「もっとここを詳しく説明しろ」
とかいうリクエストがありましたら、遠慮なくどうぞ。

No. 3905 # 68user 2004/08/02 (月) 03:05:08
「UNIX の部屋」
      http://X68000.q-e-d.net/~68user/unix/
を更新しました。

No. 3906 # has 2004/08/03 (火) 00:59:08
>>3892 じぇぃじぇぃ
その後いかがでしょうか。

>>3893 has
にも書いたとおり、他の人に聞いてなんとかなったのならそれはそれで
まったく構わないのですが、何をどうしたかの報告が欲しいんです。

No. 3907 # さいさん 2004/08/03 (火) 21:59:23
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;
----------

No. 3908 # 68user 2004/08/03 (火) 22:15:05
>>3907 さいさん
> HP-UX11.00でPerlでシェルスクリプトを書いています。
Perl で書いたスクリプトは Perl スクリプトと呼びます。sh や
csh などのシェルが解釈するスクリプトがシェルスクリプトです。

> 1回で終わらせたいのですがごうすればよいでしょうか。
perl4 で動くかどうかはわかりませんが、perl5 では以下の
どれを使ってもうまくいきました。
    $addr =~ s/(^<|>$)//g;
    $addr =~ s/[<>]//g;
    $addr =~ s/^<(.*)>$/$1/;
    $addr =~ s/<(.*)>/$1/;

No. 3909 # たむたむ98 2004/08/03 (火) 23:04:51
いつもこのHPにお世話になっている者です。

この6月に会社の社内ネット担当になり、NW1年生になりました。
今はコマンドプロンプトやらTelNetをいじりながら勉強中です。
今日も自宅に戻ってから、
Windows98環境のコマンドプロンプトでパチョパチョ叩いて勉強していました。
画面がスクロールできなく小さいなと思い、
ツールバーの画面最大化ボタンを押してみたら、大変なことに!!

最大化の画面からツールバーが表示できる術を知らず、画面が戻らなくなりました。
EXITで一度ログアウトしてから再立上してみたのですが、
最大画面のままで、、

元の画面に戻すコマンドや、又はコマンド指示以外に元に戻す方法を教えて下さい。
どうぞ宜しくお願い致します。

No. 3910 # 68user 2004/08/03 (火) 23:07:49
Windows には詳しくないので「コマンドプロンプト 最大化 戻す」で
検索したところ、
http://forum.nifty.com/fpcu/top/doslog01/0896.htm
> 通常、Alt+Enter(Altキーを押しながらEnterキーを押す)で戻ります。
だそうです。試してみてください。

No. 3911 # sorame 2004/08/04 (水) 00:56:13
alt+enterはコマンドプロンプトというよりも
最大化した状態のアプリケーションを戻すようなイメージで使えます。

No. 3912 # さいさん 2004/08/04 (水) 09:23:47
>>3908 68user
>> 1回で終わらせたいのですがごうすればよいでしょうか。
>perl4 で動くかどうかはわかりませんが、perl5 では以下の
>どれを使ってもうまくいきました。
> $addr =~ s/(^<|>$)//g;
> $addr =~ s/[<>]//g;
> $addr =~ s/^<(.*)>$/$1/;
> $addr =~ s/<(.*)>/$1/;
Perl4でも上記のどれを使っても上手くいきました。

No. 3913 # 初心者 2004/08/04 (水) 09:31:36
はじめまして
最近、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)の動作の違いは、なんのなのでしょうか?
標準出力と標準エラー出力の部分を調べたのですが、イマイチ
理解できていません。
こんな質問で申しわけないのですが、ご教授願います。

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

No. 3914 # 立神梢一 [URL] [E-mail] 2004/08/04 (水) 19:04:49
はじめまして。
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を確認したのですが、特になにも記述はありませんでした。
何か情報等ございましたらお教えいただきたい次第です。

No. 3915 # いはら 2004/08/05 (木) 11:47:21
はじめまして。。
簡単かもしれませんが是非、識者の方のご助言をお願いします。
AIX4.3.2でlhaコマンドを利用出来るようにしたいのですが
方法を教えて下さい。
AIX4.3.3では利用できるものを見つけたのですが、、、
宜しくお願いします。

No. 3916 # コノテガシワ 2004/08/05 (木) 11:50:58
はじめまして。
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. 3917 # たむたむ98 2004/08/05 (木) 12:56:24
早速ご返答頂きまして、まことに有り難うございます。

実行したところ、最大化した画面が戻りました。
(もう一回実行すると最大化しました。)
とても助かりました有り難うございます。
これからも宜しくお願い致します。

--------------------------------------------------------------------------------
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キーを押す)で戻ります。
だそうです。試してみてください。

No. 3918 # 68user 2004/08/05 (木) 14:00:23
>>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) で判別し、もしエラーでないならデータポートに
    入ってくる値で存在チェックする
がよいと思います。自分用のお手軽ツールで、とりあえず動けばいいや的な考えで
あれば、それこそ一番お手軽と思う方法がよろしいかと。

No. 3919 # コノテガシワ 2004/08/05 (木) 17:45:24
>> 3918
ご返答ありがとうございます。

他のサイトでもFTPクライアントのトラブルも拝見してきました。
どうやらサーバによって NSLT に使えるパラメータやそのレスポンスが違うのは、
RFC に定められた動き以外は FTPD(サーバプログラム)独自の+α機能
ということのようですね。(違っていたらご指摘下さい)

だから、クライアントを作る人も応用が利くように
色んなサーバを調べて対応した方が良い物が出来るということですね。

今回の場合、実はあるプロジェクトの開発用のマシンでの話でした。
開発環境だから本番と同じにした方がいいかもしれない・・・
でも、今後のことを考えると新しいOSで新しいFTPサーバでも
対応した存在チェックが出来るようにした方がいいかもしれない・・・
と少し悩んでいました。

今回の場合、それほど汎用的な作りを重視する必要は無いのですが、
自分の技術向上のためにも汎用的な作りにする方向で検討してみます。
ありがとうございました。

No. 3920 # いはら 2004/08/05 (木) 18:06:24
回答ありがとうございました。

> > AIX4.3.2でlhaコマンドを利用出来るようにしたいのですが
> よくわかりませんが、AIX4.3.3 の lha はどうやって入手したのですか?

レスして頂いた内容のサイトより入手しました。

> AIX は知りませんが、フリーソフトのバイナリを配布しているサイトが
> あるのならそこから入手、なければソースからコンパイルとなるでしょう。
> http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/
> というのがありますが、どの程度信用できるサイトなのかはわかりません

頑張って捜してみます。

No. 3921 # 立神梢一 [URL] [E-mail] 2004/08/06 (金) 01:25:03
ご回答ありがとうございました。
>>とりあえず Solaris9_x86+Apache1.3.31 だけで試してみるべきでしょう。
ですよね。
ただ、現在のところどうもDNS関連での名前解決の問題っぽいです。
ローカルではDNSを立てていないため、その辺も関連しているのかなという感じです。
クライアントマシンをサーバーのhostsファイルに記述していないのでそれも無関係で
はないかもというところです。
というわけで現在作業中です。解決もしくは問題の切り分けができましたら、
またご報告に参上したいと思います。ありがとうございました。

No. 3922 # 社長の猿 2004/08/07 (土) 23:02:02
はじめまして、少し教えて欲しいのですが、ルータの設定画面などにアクセスする際にポップアップで
表示される認証を自動的に行えないでしょうか?少し古いルータを使ってまして、接続先を自動的に切
り替えるプログラムを作りたいのですが。

No. 3923 # 2004/08/11 (水) 10:31:52
初めまして。質問があります。
僕は掲示板で書き込みをしていたら、まったく同じIPの方がいて、その方にとっても
ご迷惑をかけてしまいました。
そこで質問です。
同じIPがあるのって、不可能なんですか??

No. 3924 # ネットワーク1年生 2004/08/14 (土) 22:54:03
初めまして。UNIXのみならず、ネットワークについて色々お世話になってます。

NW内で近いコンピュータと通信するというエニーキャストアドレスが在りますが、
何を以って【近い】というのか解りません。
部の勉強会で、近いとは遅延のことか?と発言したところ、
次回発表に「CSMA/CDのキーワードで、NW内近いというものを発表しろ」と
課題が出されました。
調べたところ、CSMA/CDの他、CSMA/CA、ホットポテトルーティング、近隣探索機能(v6)等々出てきました。
しかし、何を以って近いと言うのか、よく解っていません。

・NW内で【近い】とは何か?
・CSMA/CD、CSMA/CA、ホットポテトルーティング、近隣探索、がどのような仕組みか?
上記について、参考になる資料やサイトがあれば是非とも教えて下さい。宜しくお願い致します。

No. 3925 # hex 2004/08/17 (火) 02:33:40
どうも初めまして。ネットワークプログラミング始めたばかりの者です。
ちょっと前までは決まりきったものだと特に気に止めずに流していたのですが、
connect()関数の第2引数が
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr))
というふうに普通していますが、どういう意味なんでしょうか?
servaddrのアドレスさえ渡してやればいいように思うのですが。(ん?その前にC言語の
文法がまだ完全に理解できていなのかも?)servaddr構造体のアドレスをsockaddr構造体
のポインタでキャストしてる?なんかよく分かりません。
助言をお願いします。

No. 3926 # 68user 2004/08/17 (火) 02:59:57
>>3922 社長の猿
おそらく BASIC 認証と呼ばれるものだと思いますので、
>>2612 68user
を参考にしてください。

>>3923
proxy サーバを経由しないと学校や会社の外に出られない環境とか
(proxy サーバの IP アドレスは 1つ)、一度 IP アドレスが割り当て
られたものの、しばらくアクセスしなかったので他の人に同じ IP
アドレスが割り当てられた、という可能性があります。

>>3924 ネットワーク1年生
わたしはネットワークの仕組みはよく知らないのですが、
> CSMA/CDの他、CSMA/CA、ホットポテトルーティング、近隣探索機能(v6)
CSMA/CD・CSMA/CA は近いという概念とはまったく関係なく、LAN 内での
コリジョンを防止するための仕組みだと思っています。

http://e-words.jp/w/CSMA2FCD.html
http://e-words.jp/w/CSMA2FCA.html

ホットポテトルーティングはわかりません。Anycast もよくわかりませんが、
どこが違いかどうかはルータが判断するものではないかなぁと思っています
(末端のアプリが判断する必要はない)。で、ルータがどういう基準で近さを
判断しているかはわかりません。

>>3925 hex
> servaddrのアドレスさえ渡してやればいいように思うのですが
根本的にはその通りです。ただ、connect(2) は struct sockaddr_in の
アドレスを受け取ったり (インターネットのアドレスの場合)、struct
sockaddr_un のアドレスを受け取ったりしなければいけません (UNIX
ドメインのアドレスの場合)。

しかし C 言語ではいろいろな型を受け取る関数を作ることはできないため
(Java や C++ のように関数のオーバーロードができないため)、struct sockaddr
という汎用的な構造体を定義し、それにキャストすることで connect(2) に
struct sockaddr_in も struct sockaddr_un も渡せるようにしています。

まぁ C の言語上の制約を回避するための汚い手ですね。コンパイラに警告を
くらってもいいなら、キャストなしでも動くと思います (C++ でなく C を使って
いるならば)。

No. 3927 # 立神梢一 [URL] [E-mail] 2004/08/17 (火) 03:39:52
>>3921 立神梢一
だいぶ時間が空いてしまいましたが、sslをはずしてコンパイルしてみましたが
変化なく、その後名前解決をもう一度見直したところどちらの状態(ssl有り/無し)
でも問題ない速度で動作しました。やはり名前解決周りだったようです。
ご報告が遅くなりました。ありがとうございました。

No. 3928 # yoshitani 2004/08/17 (火) 10:53:25
/etc/passwdファイルからグループIDがゼロになっているユーザを出力する場合、
grep ':00*:' /etc/passwdとすると
rootだけが以下のような内容で引っかかります。
root:x:0:1:Super-User:/:sbin/sh
しかし、何故これがひっかかるのかがわかりません。
grepの条件で「:00*:」としているのに、なぜこれを含んでいないrootの
行がひっかかるのでしょうか?ご存知の方、教えていただけませんでしょうか。
OSはSolaris7を使用しています。
  

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

No. 3929 # yoshitani 2004/08/17 (火) 10:58:56
/etc/passwdファイルからグループIDがゼロになっているユーザを出力する場合、
「grep ':00*:' /etc/passwd」とすると
rootだけが以下のような内容で引っかかります。
「root:x:0:1:Super-User:/:sbin/sh」
しかし、何故これがひっかかるのかがわかりません。
grepの条件で「:00*:」としているのに、なぜこれを含んでいないrootの
行がひっかかるのでしょうか?ご存知の方、教えていただけませんでしょうか。
OSはSolaris7を使用しています。
  

No. 3930 # 68user 2004/08/17 (火) 13:20:17
>>3929 yoshitani
> grepの条件で「:00*:」としているのに
:00*: は、
      コロンがあって、その後に 0 があって、その後に 0個以上の
      0 があって、その後にコロンがある
という正規表現ですので、
> 「root:x:0:1:Super-User:/:sbin/sh」
の :0: の部分にマッチします。

GID が 0 のものを引っ張りたいなら、
    % grep ':[0-9][0-9]*:0:' /etc/passwd
    % awk -F: '$4~/^0$/ {print}' /etc/passwd
などとすればよいかと思います。

No. 3931 # MERCY 2004/08/18 (水) 01:32:54
>>3924 ネットワーク1年生
ネットワーク的に近いとは同一ネットワーク内のことを指します。
まぁ、普通ならルーターを挟まない通信と言うこと

No. 3932 # Yoshitani 2004/08/18 (水) 12:24:43
>>3930 68user
ありがとうございました。
正規表現、もっと勉強してみます。

No. 3933 # たろー [E-mail] 2004/08/19 (木) 19:35:35
はじめて書き込みをさせていただきます。たろーと申します。
OpenSSLで単純なHTTPSクライアントのプログラミングをしているのですが、
SSL_connect(ssl)関数のタイムアウトの設定の仕方がわかりません。

もしご存知でしたら、教えていただけないでしょうか。
宜しくお願いします。

No. 3934 # 68user 2004/08/19 (木) 19:43:54
>>3933 たろー
> SSL_connect(ssl)関数のタイムアウトの設定の仕方がわかりません。
関数名しか見てませんが SSL_set_timeout や SSL_CTX_set_timeout じゃ
ないですかねぇ。ぜひ結果を教えてください。

No. 3935 # TSURU 2004/08/20 (金) 20:55:22
こんばんは。TSURUです。
久しぶりです。
また、皆さんのお力を貸して欲しいと思います。

sendmail を久しぶりにコンパイルしようとしたのですが、
以下のようなメッセージが大量に出力されてしまい、コンパイル
できません。

unknown flag -lang-c
unknown flag -Asystem(unix)
unknown flag -Asystem(svr4)
unknown flag -Acpu(sparc)
unknown flag -Amachine(sparc)

環境は、以下のとおりです。

OS : Soraris 2.5.1
sendmail : sendmail-8.12.11

以前は問題なくコンパイルできていたのですが、久しぶりに実行したら、いきなり
コンパイルできなくなってしまいました。環境は、以前と特に変えていません。
コンパイラは gcc ですが、かなり古いです。

% l /usr/local/bin/gcc
-rwxr-xr-x 1 root other 118928 9月 1日 1996年 /usr/local/bin/gcc*

コンパイラが古いとコンパイルできなくなるということはあるのでしょうか?
ちなみに、sendmail だけでなく、UW-IMAP など他の製品をコンパイルしようとした
時にも、同様な現象となります。
gcc が正しくインストールされていないのが原因なのでしょうか?(だとしても、
以前は正常にコンパイルできていました。)

どなたか、解決方法を教えていただきたいと思います。
よろしくお願いします。

No. 3936 # 一人 2004/08/23 (月) 21:39:37
以下のカンマで区切られたデータをフィールド1をキーにして、フィールド3を
1行に編集しようとしたのですが、処理が終了してくれません。
無限ループの状態になってしまいます。

上手くファイルの終了を判断していません。
ファイルの終わり(EOF)を判断するにはどうしたらできますか。


--データ--------------
A001,商品番号,0001
A001,商品番号,0002
A001,商品番号,0003
A002,商品番号,0001
    :
    :
Annn,商品番号,0001
Annn,商品番号.0002

--結果--------------------
A001,0001,0002,0003
A002,0001
    :
    :
Annn,0001,0002

----------------------------------
#!/bin/sh
#

SORT_FILE="/tmp/sort_csv.log"
OUT_FILE="/tmp/kekka.log"

rm ${OUT_FILE}* > /dev/null 2>&1

echo "*** start ***"

awk -v OUT=${OUT_FILE} -F"," '
BEGIN {
                count = 0+0 ;
                output=sprintf("%s",OUT) ;
        }
function edit_proc() {
        cnt = 0+1 ;
        dumy = $1 ;
        printf("%s",$1) >> output ;

        while( NF>0 ) {
                if (dumy != $1) {
                        printf("\n") >> output ;
                        dumy = $1 ;
                        printf("%s",$1) >> output ;
                        cnt++ ;
                }
                printf(",%s",$3) >> output ;
                getline ;
        }
        printf("\n") >> output ;
        return cnt ;
}
{
        count=edit_proc() ;
}
END {
        close(output) ;
        printf("syori count [ %d ] ken\n",count) ;
}' ${SORT_FILE}

echo "*** end ***"

No. 3937 # ネットワーク1年生_forMERCYさま 2004/08/24 (火) 00:31:19
>>3931 MERCY
MERCYさま。ご回答有り難うございます。お礼が遅くなってごめんなさい。
これからもその他、下らないことで質問すると思われますので、
是非とも宜しくお願い致します。
有り難うございました。

No. 3938 # ネットワーク1年生_for68userさま 2004/08/24 (火) 00:49:40
>>3926 68user
管理者さま。大変お世話になっております。
くだらない質問にも、いつも一番にご回答下さり大変嬉しいです。
本当に有り難うございます。

>> CSMA/CDの他、CSMA/CA、ホットポテトルーティング、近隣探索機能(v6)
>CSMA/CD・CSMA/CA は近いという概念とはまったく関係なく、LAN 内での
>コリジョンを防止するための仕組みだと思っています。

はい。まさにその通りでした。。
課題を出した上司はNWがどの様に通信しているのかを勉強させたく、
CSMA/CD・CSMA/CAの課題を持ち出したものでした。
コリジョン防止がNW内通信の速さだと思っていた先輩が誤って、
「NW内の近さ」と関連付けアドバイスしてくれたものですから混乱してました。

「UNIXと言うものが、サーバ向が主体」とどこかで思っているので、
こちらでNWの質問までしてしまって申し訳けございませんでした。
とにかく本当に有り難うございました!

No. 3939 # カトウ [E-mail] 2004/08/24 (火) 10:04:33
はじめまして。
よろしくお願いいたします。

現在HP-UX11.00、Bシェルでログの監視ツールを作っています。

早速質問させていただきたいのですが、
たとえば、以下のようなログがあったとします。
------------------------------------------
1:I have a error. You have a worning.
2:I have a worning. You have a error.
------------------------------------------

変数にワイルドカードを使用して
------------------------------------------
pattern="*error*worning*"
------------------------------------------
とパターン定義しておいて、ログファイルを一行ずつ読み込み
この場合ですと、一行目のみ出力させるということは可能でしょうか?

現在
------------------------------------------
message=`echo $line | sed -n /$pattern/p`
if [ "x$message" = "x" ] ; then
        exit 0
else
        echo $message
        exit 1
fi
#($lineはログファイルの読み取り行)
------------------------------------------
というようなことが、やりたいのですが、うまくいきません。


ご教授のほどお願いいたします。

No. 3940 # zsh 2004/08/24 (火) 15:00:13
>>3936 一人
こんな感じでどうですか?
------
awk 'BEGIN {
                FS=",";
                dummy="";
        } {
                if ( $1 != dummy ) {
                        if ( NR > 1 ) printf "\n";
                        printf "%s,%s",$1,$3;
                        dummy=$1
                } else {
                        printf ",%s",$3
                }
          } END {
                printf "\n";
          }' infile
------

>>3939 カトウ
pattern='.*error.*worning.*'
では駄目ですか?

No. 3941 # 一人 2004/08/25 (水) 09:51:00
>>3940 zsh

ありがとうございます。
上手くいきました。

こんな簡単な方法でできるのですね。
考えすぎですね。

No. 3942 # 68user 2004/08/25 (水) 10:39:34
>>3935 TSURU
> sendmail を久しぶりにコンパイルしようとしたのですが、以下のような
> メッセージが大量に出力されてしまい、コンパイルできません。
http://mm.apache.or.jp/pipermail/apache98-99/1999-August/001431.html
のスレッドを参考にしてください。

gcc をインストールしなおさないといけないのか、PATH の設定次第で何とか
なるものなのかはわかりません。

> コンパイラが古いとコンパイルできなくなるということはあるのでしょうか?
あります。しかし今回は環境の問題でしょう。

>>3939 カトウ
> message=`echo $line | sed -n /$pattern/p`
質問内容とは関係ありませんが、$line にワイルドカードなどが入っていると
シェルが展開してしまうので、ログ内容をシェル変数に格納するやり方はお勧め
しません。

No. 3943 # 初心者? 2004/08/26 (木) 10:22:02
始めまして、こんにちは。
UNIX講習を受けてから5年以上も経つのに、ほとんど初心者です。

基本的な質問ですみません。
tar xvf *.tar
で展開して、ファイル情報を表示させたとき、
その内容をファイルに落とすにはどうしたらいいでしょうか?
この展開ですべてのファイルがきちんと展開されたか確認したいのです。
(実は1つだけ展開されていない・・・)
本当に、基本的な質問ですみません。

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

No. 3944 # ポチ公 [E-mail] 2004/08/26 (木) 11:45:54
初めまして。ポチ公と申します。

ネットワークの勉強中ですがちょっと質問があります。

今、httpの仕組みを勉強中でこちらのサイトにたどり着きました。
以下のページで公開されているtcpdump-filter.plで
ttp://x68000.q-e-d.net/~68user/net/tcpdump.html

書かれていたとおりに実行して
見事パケットが整形されて表示されました。

以下のようなコマンドです。

tcpdump -l -s 1600 -x -i lo0 | tcpdump-filter.pl | grep http >> packet.txt

xxx.com/ HTTP/1.0 Accept: image/gif, image/x-xbitmap,
xxx.com/ HTTP/1.0 Accept: image/gif, image/x-xbitmap,
xxx.com/ HTTP/1.0 Accept: image/gif, image/x-xbitmap,
zation Required ...

それで思ったのですが、どうもログを見ると
先頭の3行くらいが全て省略されているようでした。

環境はredhat9/perl5.8です。

何故、先頭の数文字が省略されているのが
疑問でしたので、投稿してみました。

もし何か解りましたら教えて頂けたら幸いです。
宜しくお願いします。

No. 3945 # 68user 2004/09/02 (木) 21:46:43
>>3943 初心者?
> tar xvf *.tar
> で展開して、ファイル情報を表示させたとき、
> その内容をファイルに落とすにはどうしたらいいでしょうか?
tar xvf *.tar > out.txt 2>&1 (sh・bash の場合)
tar xvf *.tar >& out.txt (csh・tcsh の場合)
とします。ただ、
> この展開ですべてのファイルがきちんと展開されたか確認したいのです。
という目的であれば、
      - v オプションをつけない。これで何か出力されれば
          それはエラーメッセージのはず。
      - tar のステータスコード ($? や $status) を確認。
          エラーが発生しているならステータスコードが 1 以上のはず。
という手もあります。

>>3944 ポチ公
> それで思ったのですが、どうもログを見ると
> 先頭の3行くらいが全て省略されているようでした。
すいません、ちょっと時間と気力不足により、スクリプトの
確認は後日行います。申し訳ないです。

もし正しい出力がほしいなら、tcpdump の -X オプションを
使うとか (Ethernet フレームまで出力されてしまいますが)、
ethereal や ethereal に付属する CUI の tethereal の使用を
検討してみてください。

No. 3946 # 68user 2004/09/02 (木) 22:01:41
「ネットワークプログラミングの基礎知識」の「リンク集・参考書籍」に
      OpenSSL - 暗号・PKI・SSL/TLS ライブラリの詳細
を追加しました。
      http://X68000.q-e-d.net/~68user/net/link-book.html#4274065731

去年頃から、OpenSSL に一番詳しい日本語の解説を書くことを
目指してがんばってきましたが、夢破れました。この本がもっと
前に出ていれば、あんなことやこんなことで悩む必要はなかった
のに、と理不尽な怒りすら覚えます。

今後は OpenSSL に一番詳しい日本語のサイトを目指すことにします。

No. 3947 # だんだん 2004/09/05 (日) 20:21:01
お初です。
最近このHPにも大変お世話になってます。

組み込みLinuxでクレジットカードリーダーを試作することになり、
PPPでインターネット経由でサーバと通信するって感じです。

手順その他は私に任せられてたので、独自のプロトコルを考えるのが
面倒だし、ゆくゆくはセキュリティーも対策しないといけないので
サーバ側をApache+modsslを使うことにしたのですが、このサイトの情報が
非常に参考になりました。クライアントソフトを解説してあるサイトは
非常に少ないので、大変助かります。

SSLサーバ認証なしで、実験ソフトが動作するところまでは行きました!!

でも私のカードを使ってインターネット経由ってのは、まだ怖いので、
クライアント認証に挑戦したいと思います。

そんな記事を書かれるご予定はありませんか?(^^;
(クライアント側でクライアントの証明書をリストに追加するだけの
ような気がしてますが・・・)

これからもがんばってください。

No. 3948 # 68user 2004/09/05 (日) 21:33:31
>>3947 だんだん
書く気はありますが、もし書く場合は「クライアント認証とは何か」
から始めるつもりなので、いつ書きあがるかは何ともいえません。

要は SSL_CTX_use_certificate_chain_file() などを使ってクライ
アント証明書を使えばいいわけですが、詳しいやり方は
>>3946 68user
の本に書いてあります。

また、概念からして怪しい場合は、
    - 自前で CA (認証局) をたてる
    - クライアントが CSR (証明書発行要求) を作成する
    - それを受けて CA が証明書を発行する
    - IE などのブラウザに証明書を組み込む
としてまず理解を深めることをお勧めします (ここらへんの手順は
検索すればたくさん見つかります)。

No. 3949 # T.Kobayashi [E-mail] 2004/09/06 (月) 13:15:25
はじめまして。

UNIX の部屋 -> コマンド -> cpp にて、
型の別名の定義方法で
typedef MYCHAR_P char *;
が正しいと紹介されていますが、これは
typedef char *MYCHAR_P;
の間違いではないでしょうか?

No. 3950 # 68user 2004/09/07 (火) 09:58:18
>>3949 T.Kobayashi
> typedef char *MYCHAR_P;
> の間違いではないでしょうか?
ごもっともであります。修正しました。
      http://X68000.q-e-d.net/~68user/unix/pickup?cpp

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

No. 3951 # ほんたか 2004/09/07 (火) 11:29:11
はじめまして。

いつもコマンドの参考にさせて貰っております。
説明している数や例がわかりやすくて重宝してます。

大した事ではありませんが、気になった部分を2点ほど
■いずれも【TOP >> UNIX の部屋 >> ジャンル別コマンド一覧 >> vi】にて
1.「h 1文字左に移動」がリストからはみ出ています。
2.「編集モード中に"ESC"」=「編集モードに移行」
    であれば、リストに入れてはいかがでしょうか。
リストにあれば、閲覧2度目以降の人はそれだけ参考にすればよいので見やすいかと。
(個人的にですが)

No. 3952 # shima [E-mail] 2004/09/07 (火) 17:04:46
はじめまして。

ソケット通信について教えてください。

Severプログラムでクライアントから
ConnectしてきたクライアントがClose処理を行ったかわかりますでしょうか?
Connect時は、接続元のIPアドレス・ポートがわかると思いますが
クライアントがCloseを行ったかどうかを知りたいのですが?

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

    

No. 3953 # 68user 2004/09/08 (水) 02:46:07
>>3951 ほんたか
ご意見ありがとうございます。

> 1.「h 1文字左に移動」がリストからはみ出ています。
これは HTML 生成スクリプトの不具合で、認識しているの
ですが、美しい直し方はないかなぁと考えているところです。
いましばらくお待ちください。

> 2.「編集モード中に"ESC"」=「編集モードに移行」
> であれば、リストに入れてはいかがでしょうか。
ごもっともです。そのように修正しました。
      http://X68000.q-e-d.net/~68user/unix/pickup?vi


>>3952 shima
> ConnectしてきたクライアントがClose処理を行ったかわかりますでしょうか?
簡単に言うと (shutdown の存在を除外して言うと)、サーバが
read してクライアントから 0 か SIGPIPE が返ってこれば、
クライアントが close を行ったか、クライアントプログラムが
終了した (close or exit or core dump) ということです。

ただしクライアントのマシンが落ちたり、ネットワークケーブルが
切断された場合は… read が ETIMEOUT を返すんでしたっけ? この辺
あやふやなので、間違ってたらご指摘ください>誰となく

No. 3954 # 則巻せんべい 2004/09/10 (金) 21:04:28
初めまして、

ここのサイトの主旨にあった質問かどうかわからないのですが、
質問させて頂きます。

今、開発作業を以下の構成で実施しているのですが、

Webサーバ:Netscape-Enterprise/3.6 SP3
ブラウザ:Internet Explorer 5.5 SP2
                    Internet Explorer 6.0
言語:Server Side JavaScript(Livewire)
          ※サーバ側で動作するJavaScript言語です。

正常にHTML画面が表示されているのに、
パケットの最後に、"400 Bad Request"が入ってしまい、
次の画面で、
"あなたのブラウザがサーバに送ったリクエストはサーバが理解できないリクエストです"
のエラー画面が表示されてしまいます。

この現象は必ず発生するわけではなく、
2人のひとが同時に同じ作業をした場合にも、
片方の人は発生し、もう片方の人には発生しないことがあります。


(パケットの例)
    :
</HTML>
HTTP/1.1 400 Bad Request
Server: Netscape-Enterprise/3.6 SP3
............


ただ、この問題は Netscape Navigater Ver7.1 では発生せず、
また IE の設定を、
「HTTP 1.1を使用する」 → 「HTTP 1.1を使用しない」
に変更するとこちらも問題が発生しなくなります。

そして、telnet を使用しリクエストした場合には、
必ずこの形(Bad Request)で出力されています。

プロトコルかNetscapeサーバが原因と考えているのですが、
うまく問題を切り分けることができません。
わかるかたがいましたら、すみませんがご教授願います。

No. 3955 # だんだん 2004/09/13 (月) 23:32:03
> 3948 . 68user
> 要は SSL_CTX_use_certificate_chain_file() などを使ってクライ
> アント証明書を使えばいいわけですが、詳しいやり方は

あっさり動作しました。
ご指摘ありがとうございます。

No. 3956 # 68user 2004/09/15 (水) 14:56:26
>>3954 則巻せんべい
そういう事象は知らないので何とも言えませんが、とりあえず
ethereal などで IE5.5 と NN7.1 のそれぞれのリクエストと
レスポンスを観察してみることをお勧めします。

No. 3957 # ニッタン 2004/09/15 (水) 21:16:31
お久しぶりです。
その節はお世話になりました。
現在、再びSSLの改造に着手しています。

OpenSSLを使用してクライアントからサーバに
HTTP KEEP ALIVE(パーシステントコネクション)を行いたいのですが、
上手く行きません。

HTTPリクエスト時に
Getで最初と異なるHTMLファイルを指定し、
Connection: Keep-Alive
を要求した後に、
SSL_read()をしても異なるHTMLファイル
を読み込む事ができません。

ちなみに、平文のhttpでは読み込む事が出来たのですが、
この辺りの情報が皆無に近くて苦労しています。

OpenSSLの場合は何か特別な事を行なわないと実装できないのでしょうか?

参考URLや書籍など、ご存知な方が居られましたら
ご教授下さい。

No. 3958 # 68user 2004/09/16 (木) 02:17:13
>>3957 ニッタン
> OpenSSLの場合は何か特別な事を行なわないと実装できないのでしょうか?
特にないと思っています。

https://www.rsasecurity.com/https://www.rsasecurity.com/solutionsPrimary.asp
を keep-alive で読むサンプルを
    http://x68000.q-e-d.net/~68user/tmp/https-client-keep-alive.c
に置きました。

このサンプルではレスポンスに </html> が含まれていればレスポンスの
受信が完了したものとみなして次のリクエストを送信する、という手抜き処理を
していますが、本来は Content-Length の値などを見るべきです。

No. 3959 # バンガード [URL] [E-mail] 2004/09/16 (木) 14:27:53
バンガードです。

以下の機能の実現方法が分からず困っています。
--------- rep_file ------------
$SERVER1
$SERVER2
$SERVER3
-------------------------------

上記のファイルが存在する状態で、以下の定義を行います。

-------------------------------
SERVER1="server01"
SERVER2="server02"
SERVER3="server03"
-------------------------------

この状態で、rep_fileを読み込み各行が表す変数の中身(server01,server02,server03)
を表示させたい。

以下のスクリプトを組んで見ましたが、
--------------------------------
while read REP
do
                echo \$$REP
done < $REP_LIST
--------------------------------
結果は以下の通りでした。
--------------------------------
$SERVER1
$SERVER2
$SERVER3
--------------------------------

環境はAIX5.2です。
出来れば、kshで実現したいと考えています。

No. 3960 # 68user 2004/09/16 (木) 14:44:50
>>3959 バンガード
> echo \$$REP
eval "echo $REP" としてみてください。

No. 3961 # バンガード [URL] [E-mail] 2004/09/16 (木) 16:51:28
>>3960 68user
>eval "echo $REP" としてみてください。
うまく行きました。
ありがとうございました。

No. 3962 # タコ見習 2004/09/17 (金) 18:14:56
はじめまして。最近Unix系OSをいじりはじめたものです。

このサイトのおかげですごい助かってるぜーと隣の人間に話していたら、
そういうのは掲示板に書き込んだほうが管理者の人が元気になるよー、と
教えてもらったので、感謝報告書き込みさせてください。

これからもリファレンスのお世話になりそうなのでまた利用させて下さい。
お邪魔しましたm(__)m

No. 3963 # 則巻せんべい 2004/09/18 (土) 10:21:30
>>3956 68user
ご指摘、ありがとうございます。
教授の内容を試行させて頂きます。

No. 3964 # 侍刀 [URL] [E-mail] 2004/09/20 (月) 03:49:08
初めまして。
最近C言語でCGIプログラミングを始めました。
そこで、crypt関数によるMD5暗号化を行う(掲示板のため、所謂トリップのため)ことにしたのですが、
#include <stdio.h>
#include <unistd.h>

int main(void)
{
    char *salt = "Salt";
    char *pass = "pass";

    printf("Content-type:text/html\n\n");
    crypt_set_format("des");
    printf("DES: %s\n", crypt(pass, salt));
    crypt_set_format("md5");
    printf("MD5: %s\n", crypt(pass, salt));
    crypt_set_format("blf");
    printf("Blowfish: %s\n", crypt(pass, salt));

    return 0;
}
というソースを見つけたので、動作確認のためgcc3.2、Kernel2.6.5のFedoraCore2ディストリ環境でコンパイルしてみました。
しかし、[-lcrypt]オプションを指定しても解決していない旨のエラーメッセージが表示され、コンパイルできません。
配布も予定しているものなので、httpdを直接書き換える設定は不可能なので、どのようにMD5に指定したらよいか、何方かご教授をお願いします。

No. 3965 # 68user 2004/09/20 (月) 15:48:43
>>3962 タコ見習
ありがとうございます。間違いやわかりにくい表現などありましたら、
ぜひご指摘ください。

>>3964 侍刀
> というソースを見つけたので、動作確認のためgcc3.2、
> Kernel2.6.5のFedoraCore2ディストリ環境でコンパイル
> してみました。
http://www.jp.freebsd.org/QandA/HTML/1944.html でしょうか。

この crypt(3) の動作を切り替える仕組みは、わたしの知る限り FreeBSD
のみに実装されています。Linux にこういう仕組みがあるかどうかはわかり
ません (もしあったとしてもインタフェースは異なる可能性が高いと思われます)。

OpenSSL 必須でよいなら、EVP_Digest* などの仕組みを使うのがよいでしょう。

それがダメなら、*BSD や RFC1321 のソースを同梱して配布することをお勧め
します (md5 のソースはそれほど長くないので)。

No. 3966 # 侍刀 [URL] [E-mail] 2004/09/20 (月) 17:40:20
>>3965 68user
あ、あらららら・・・・・・・そうだったんですか・・・・・
Linux互換じゃないとは知りませんでした・・・・・・

では、RFC1321のソースでも探して見ます・・・・

No. 3967 # でぶ 2004/09/23 (木) 12:27:57
HP-UX11.00なのですが、telnetやrlogin、remshなどで、リモートログイン
してくるあるユーザ(一般ユーザ)をログインできないようアクセスの拒否
をしたいのですが、実現可能なのでしょうか。

状況としては、UNIX同士、PCからUNIXとあり、同一LAN上にあります。

ftpのアクセス拒否と同じように定義ファイルがあり、ユーザ名を記述
すればアクセス拒否ができるのかと調べてはみたのですが、該当する
ようなファイルはなく、実際にはどうなのでしょうか。

No. 3968 # 68user 2004/09/24 (金) 00:27:22
>>3967 でぶ
> telnetやrlogin、remshなどで、リモートログインしてくるある
> ユーザ(一般ユーザ)をログインできないようアクセスの拒否
> をしたい
以下のような案でどうでしょうか。

- telnetd や remshd を止める
    (全ユーザが利用不可)
- そのユーザのパスワードやログインシェルを変更する
    (su にも有効。実装によるかもしれないが ftp が使えなくなるかも)
- .login や .profile に logout と書いておく
    (タイミングよく Ctrl-c を押せばよいので気休め程度。su には効かない)

No. 3969 # [E-mail] 2004/09/28 (火) 13:22:32
UNIX上のC言語でCGIを作っています、複数のデータを画面に表示する。
沢山データあるので、改ページの機能もあります
1つ悩みがあります。
ページを変わると、タイトルの表示位置も変えてしまう。
タイトルはTPLファイルで定義しています、以下のように
        <HR width=98%>
        <TABLE width=98% cellpadding="2" cellspacing="0" border="0">
            <TR>
                <TH width="30">選択</TH>
                <TH width="170">サービス名</TH>
   <TH width="170">グループ名</TH>
   <TH width="170">コンテンツ<BR>タイトル名</TH>
                <TH width="170">コンテンツ<BR>ファイル名</TH>
                <TH width="100">ファイル<BR>サイズ<BR>(byte)</TH>
                <TH width="50">更新日時</TH>
                <TH width="58">無償フラグ</TH>
    </TR>

データ出力はC言語で書いています、以下のように
printf("<TR bgcolor=%s><TD align=\"center\" width=\"30\">",html_work2);
printf("<INPUT type=\"radio\" name=\"CONTENT_ID\" %s value=\"%s%s%s\">\n",html_work1,recode.my_content_id.arr,recode.my_service_id,recode.my_group_id);
printf("</TD><TD width=\"170\">%s</TD><TD width=\"170\">%s</TD><TD width=\"170\">%s</TD><TD width=\"170\">%s</TD><TD width=\"100\">%s</TD><TD width=\"53\">%s</TD><TD width=\"58\">%s</TD>\n",
                service_name,
                group_name,
                recode.my_content_title.arr,
                recode.my_content_filename.arr,
                recode.my_file_size,
                recode.my_update_date.arr,
                html_work3);

widthは%の形で定義して見た、それでもページを変わると、タイトルの表示位置をずれてしまう。
誰か教えていただけないでしょうか?

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