68user's page 掲示板

Prev< No. 2813〜2913> Next  [最新発言に戻る] [過去ログ一覧]
No. 2813 # has 2002/06/27 (木) 02:17:48
>>2806 68user
perl実行時にstraceしながらtcpdumpしましたが、パケットは流れませんでした。
ただstraceで若干気になったところがあるんですが、

socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168\
.0.1")}}, 28) = 0
send(3, "9\307\1\0\0\1\0\0\0\0\0\0\3www\2jp\7freebsd\3org\0"..., 36, 0) = 36
gettimeofday({1025110376, 462410}, NULL) = 0
poll([{fd=3, events=POLLIN}], 1, 5000) = 0

と出力されるうち、sendの戻り値36は何を示しているんでしょう?
# ちなみにプログラムはpollでタイムアウトを繰り返して終了します。
固定IPを指定してみましたが、やはり同様に名前解決できませんでした。
ipv6を切るのは、やり方がわかっていないのでまだやっていません。
Webの検索をしたときにSolarisで同じような問題にぶつかって、
それについてMLで質問している記録が掲載されていたのを見付けたので、
その人に直接メールで聞いてみようかなぁ。
# その記事には結末が載っていませんでした

No. 2814 # 68user 2002/06/27 (木) 21:50:03
>>2813 has
> sendの戻り値36は何を示しているんでしょう?
送信したバイト数ですが、この結果だけ見ればちゃんと query を
送信しているように見えます。

というわけで、strace は手詰りですね。後は netstat -s で統計
情報に何か出ていないか調べてみる、くらいしか思い付きません。

No. 2815 # moto 2002/06/28 (金) 00:42:40
こんにちは パールのコードについて教えてください。
ログの読み込みなのですが、ファイルハンドルをオープンして通常は
@log = <FH>; のような形で取り込むのですが、ログファイルの先頭の
1行だけ必要な場合、その1行だけを取得することはできるのですが、
書き換えたその1行を元の先頭に戻したいのです。
メモリ食いの @log = <FH>; は使わないで、while(<FH>){nantoka;} のような形で解決するコードは無いでしょうか。
よろしくお願いします。

No. 2816 # 68user 2002/06/28 (金) 01:02:12
>>2815 moto
use IO::Handle して、sysopen して、<FH> して、先頭に
seek で戻って print でいけるかな。

ただし、1行あたりの文字数が変わらない場合のみです。

No. 2817 # moto 2002/06/28 (金) 23:45:06
こんにちは 68user さん
掲示板のログの読み込みに関してだったのですが、やはり、上手い手は無いようなのですね。
いつも思うのですが、open 関数の >> の追加書き込みでログの先頭に書きむ選択肢もあったら、while 関数ももっと活躍できるのにと残念です。
お騒がせしました。 

No. 2818 # 68user 2002/06/28 (金) 23:50:32
>>2817 moto
> open 関数の >> の追加書き込みでログの先頭に書きむ選択肢もあったら
と言われて思い出しましたが、 +> や +>> ってのがありましたね。

ただ、繰り返しになりますが、文字や行の挿入はできませんよ。
あくまで上書きのみです。よって、あまりうれしくないかも。

No. 2819 # 飛鳥 2002/07/01 (月) 16:56:36
教えてください。
vi エディッタで rm ファイル名で ファイルを削除してしまいました。
復元する方法はありませんか???
よろしくお願いします。

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

No. 2820 # 68user 2002/07/01 (月) 18:14:37
>>2819 飛鳥
一般的な UNIX のファイルシステムであれば、消したファイルは
復活できません。あきらめましょう。

No. 2821 # 飛鳥 2002/07/01 (月) 19:37:24
ありがとうございます。
素直にあきらめます。。。。。。。。。

No. 2822 # help 2002/07/01 (月) 20:23:12
javaのRuntimeクラスを使いシェルスクリプトを実行させたのですが、
シェルスクリプトに引数が渡りません。
以下の記述をしてます。
Runtime.getRuntime().exec("test.sh","param");

シェルスクリプト側で$1変数から引数の値が取得できてません。
解決方法を知ってる方は教えて頂けないでしょうか?

No. 2823 # 68user 2002/07/01 (月) 22:26:27
>>2822 help
試してませんが
    String args[]={"test.sh", "param"};
    Runtime.getRuntime().exec(args);
とか
    Runtime.getRuntime().exec(new String[]{"test.sh", "param"});
とかとか。

# 文法あってるかな・・・。

No. 2824 # help 2002/07/01 (月) 22:38:29
>>2823 68user
わざわざ返答ありがとうございます。
返答された記述も上手くいきませんでした。
シェルスクリプト内で行っている処理なんですが、
引数で渡された値からファイルを削除する処理で
以下のような記述をしてます。

#!/bin/sh

/**
      別の処理
*/
rm -rf $1

No. 2825 # 68user 2002/07/02 (火) 09:08:42
>>2824 help
> 返答された記述も上手くいきませんでした。
何がどううまくいかなかったですか? また、うまくいかないと判断した根拠は何ですか?
コマンドラインからシェルスクリプトを実行すると動くんですか?

うちの Solaris8+J2SE SDK 1.3.1 では
        String args[]={"test.sh", "param"};
        Runtime.getRuntime().exec(args);

        Runtime.getRuntime().exec(new String[]{"test.sh", "param"});
それに
        Runtime.getRuntime().exec("test.sh param");
も動きました。

そもそも
> Runtime.getRuntime().exec("test.sh","param");
はコンパイルできなかったのですが、そちらではコンパイルできているん
でしょうか?

なお、Runtime#exec の出力結果を取得したいならこちらを。
    http://www.ongs.net/daichi/java/runtimeexec/index.shtml

これをやらなくても画面に表示されないだけで、実行はされています。

No. 2826 # help 2002/07/02 (火) 10:25:45
>>2825 68user
説明不足で申し訳ありませんでした。
おかげさまでシェルスクリプト内で
以下の記述を追加して解決できました。

//削除したいファイルのパスに移動
cd /XXX/XXX
rm -rf $1

No. 2827 # Tetsu 2002/07/02 (火) 22:00:58
はじめましてTetsuといいます
早速ですが質問があります
WindowsでTCP/IPのプログラムを作っているのですがサーバーはどれにあたるのですか?
メールサーバーでしょうか?それともWWWサーバーなのか良くわかりません
自分ではチャットみたいなプログラムを作りたいと思うのですがサーバーとクライアントの関係がまだ良くつかめません
具体的に教えてもらえると助かります

No. 2828 # 68user 2002/07/02 (火) 23:12:31
>>2827 Tetsu
「はじめにプロトコルありき」と考えるのはどうでしょうね。

    HTTP というプロトコルがあります。HTTP を喋るサーバと
    HTTP を喋るクライアントが必要です。HTTP を喋るサーバは
    web サーバです。HTTP を喋るクライアントはブラウザです。
    よって、web サーバとブラウザがあれば HTTP で遊べます。


で、あなたはチャットみたいな機能が欲しいと。プロトコルは何にしますか?
    1. IRC
    2. HTTP (web 上でのチャット)
    3. 自作プロトコル

1 の場合、IRC というプロトコルは既に存在します。IRC プロトコルを喋る
サーバは既に存在します。IRC プロトコルを喋るクライアントは既に存在します。

よって、IRC サーバと IRC クライアントをインストールすれば OK です。もし
IRC サーバに不満があるなら自作することもできます。IRC クライアントに
不満があるなら自作することもできます。

2 も 1 と同じ。

3 の場合、あなたが新しいプロトコルを設計します。何から何まであなたが
勝手に決めます。しかし、そのプロトコルを喋るサーバもクライアントも
この世には存在しませんので、両方とも自作する必要があります。

…というので回答になってますか?

No. 2829 # Tetsu 2002/07/02 (火) 23:35:56
回答ありがとうございます
自分の聞きたかった質問の解答になってます
ありがとうございます
早速1か2の方法でためしてみたいと思います
3はもう少し勉強してからのほうがいいと思うので

No. 2830 # 68user 2002/07/03 (水) 02:11:27
>>2829 Tetsu
> 早速1か2の方法でためしてみたいと思います
という選択をするのはそれはそれで構わないのですが、チャットアプリを
作ることが目的ではなく、TCP/IP プログラミングの勉強が目的なのなら、
多分遠回りになります。


まずは入力された文字を参加者全員に返すサーバを作る。クライアントは
telnet コマンドで代用。

そこからどんどん機能追加して、名前を入力できるようにしたり、部屋を
作れるようにしたり、誰かが入室・退室したときは全員に通知するように
したり、ファイル送受信できるようにしたり…という方がいいかもしれません。

No. 2831 # シド 2002/07/03 (水) 11:26:28
教えてください。
あるマシンで NFS の share を行って、他のマシンからそれのディレクトリを
mountすると、他利用者に何か影響を及ぼすようなことが発生するのでしょうか?

No. 2832 # シド 2002/07/03 (水) 11:28:33
連続してすみません。
教えてください。

dfmountsコマンドを使用する場合、動作環境の条件は、どのようなものがよろしいのでしょうか?

No. 2833 # knockout [E-mail] 2002/07/03 (水) 16:01:01
始めまして。UNIX初心者です。
cシェルを主体としているUNIXにログインしているんですが、
自作のプログラミングを流すと、

: 構文エラー at line 59: `end of file' unexpected

というエラーメッセージが出るんですが、
ファイルのエンドコードがないっすって意味だと思うんですが
この対処法とかあったら教えて下さい。

因みに自分の記述は一行目から
"#! /usr/bin/sh"とかって、シェルがちゃうやん!!
みたいな指摘もあったりなかったり(爆

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

No. 2834 # 麻耶 2002/07/03 (水) 17:33:52
はじめまして。
HTTPクライアントについて教えて頂きたいのですが、C言語でHTTPクライアントを作成したく、こちらの「C言語でHTTPクライアントを作ってみよう」を参考にしております。それで、そちらにあるソースではGETの場合を例にしておりますが、これはPOSTでも可能なんでしょうか?また、その場合どのようにすればよろしいのでしょうか。
よろしくお願いします。

No. 2835 # 68user 2002/07/03 (水) 18:01:01
>>2883 シケ゛
> : 構文エラー at line 59: `end of file' unexpected
直訳すると
    予期せぬ「ファイルの終わり」
意訳すると
    次に○○が現れると予想していたのに、ファイルの終端まで
    到達してしまった

というわけで、if に対応する then や fi がないとか、case を esac で
閉じてないとか、そういったことでしょう。

# ファイルの最終行に改行コードがないという可能性も捨て切れませんが。

> ファイルのエンドコードがないっす
UNIX にはファイルの終端コードというものはありません。


>>2834 麻耶
> これはPOSTでも可能なんでしょうか?
可能です。
    http://x68000.startshop.co.jp/~68user/net/http-4.html
を読んでください。

No. 2836 # 68user 2002/07/03 (水) 18:40:59
>>2831 シド
僕は NFS に詳しくないのでよくわかりませんが、返事が付かないのは
質問が曖昧だからでしょう。

まず、OS とバージョンが不明です。

>>2783 シド
> - /home rw=nini:gp7000s,root=gp7000s "File Service"
GP7000S っていうことは Solaris か UXP/DS か HP-UX かなぁと
思いますが (Solaris しか載らないんでしたっけ?)、ちゃんと
サーバとクライアント両方について、OS とバージョンを明記
すべきです。

また、何をどう設定したのかがわかりません。share の引数は?
NFS クライアントからどうやってマウントしたのですか? NFS
クライアントからは正常にアクセスできているのですか?


> 動作環境の条件はどのようなものがいいか
どのような、って何を聞きたいのかわからないです。うまく動作しないのは
動くための条件をクリアしていないのではないか、ということですか?

> 他利用者に何か影響を及ぼすようなことが発生するのでしょうか?
「他利用者」ってどのマシンの利用者ですか? クライアント? サーバ?
要は何か問題が発生しているのですか? ただ単に心配しているだけですか?


業務で使用していて問題が発生しているなら、サポートに聞いた方が
いいと思いますよ。そっちの方が早いし、正確だし、とことんまで
調べてくれるでしょう。

あとは、人の多い
    http://pc.2ch.net/unix/
で質問してみるとか。この掲示板なんて、1日100〜200程度のアクセスしか
ありませんので。

No. 2837 # 麻耶 2002/07/03 (水) 18:43:07
回答ありがとうございます。
幾度か試してみまして、出来ませんでしたのでこちらに書き込んだのですが、よく確認しましたところ空行の入れ忘れでした。本当に申し訳ありませんでした。

No. 2838 # シド 2002/07/03 (水) 19:30:22
すみません。
書き込みの内容が、曖昧でした。私の使用しているのは、確かにSolaris です。
(クラスタサーバモデルなので2つともです。)
shareの実行は、「share -F nfs -o rw=ss10:gp7000s,root=gp7000s -d "File Service" /home」
上記の共有を実行しました。
これをもう1つ別のサーバでマウントして、dfmountsを行う。
(dfmounytsはオプションにサーバ名を入れる事が出来た)
このときdfmountsを行う動作環境として何か問題または、条件が有りますか。

No. 2839 # 遅くなりましたが・・・ [E-mail] 2002/07/04 (木) 10:02:43
回答ありがとうございました(^^)
無事プログラム流れてくれました。
結局、if文内にあったechoのダブルクォーテーション不足でした
ご迷惑かけました(^^;

No. 2840 # 紅絹 2002/07/04 (木) 14:47:49
教えていただきたいのですが、HTTPでファイル転送するものをC言語で作りたいのですが可能でしょうか?
また参考をなるものがありましたら教えて頂けないでしょうか。
よろしくお願いします。

No. 2841 # かず 2002/07/04 (木) 16:27:29
すいませんが、どなたか文字列置換に詳しい方がいらっしゃいましたら教えていただきたいんですけど、あるディレクトリ以下の全てのファイルを対象に文字列置換を行う際の書式を教えて下さい。
で、文字列中に記号や空白が含まれるので、例えば「top.test/mail.html」という文字列を「i = window.close();」という文字列に置換する際はどういったコーディングになるのか教えて頂けたらさいわいです。
sedコマンド等で色々と試したのですがどうしても上手く行きません。
どなたかわかる方いらっしゃいましたら教えて下さい。
もう3日ほど悩んでいます。。。お願いします。

No. 2842 # 名無しさん 2002/07/04 (木) 16:49:07
>>2841 かず
Perlで、
s#top\.test/mail\.html#i = window.close();#g;
とか・・・
s#\Qtop.test/mail.html\E#i = window.close();#g;

No. 2843 # シゲ 2002/07/04 (木) 20:46:21
お世話になっています。
初心者の質問で申し訳がありません。
MA-300というハードにPostgreSQLをインストールをしました。
そこで、自動起動を行いたいのですが、
/etc/rc.d/rc.local
に起動コマンドを書き込んでも起動しません。(red hatでは起動したので、コマンドは正しいかと思います。)
私の初心者ながらの推測では、起動時にrc.localは呼ばれていない気がします。(rc.localの中身は空なので、現状では呼ばれなくてもさしあたりがない。)
そこで、またまた初心者的な発想なのかもしれませが、
/etc/rc.d/rc.sysinit
に、直接コマンドを書き込んでもいいのでしょうか?

ご教授ください。
また、他にいい方法があれば、お教え願います。
よろしくお願いします。

No. 2844 # Tetsu 2002/07/04 (木) 22:48:07
>> 早速1か2の方法でためしてみたいと思います
>という選択をするのはそれはそれで構わないのですが、チャットアプリを
>作ることが目的ではなく、TCP/IP プログラミングの勉強が目的なのなら、
>多分遠回りになります。
すみません少し勘違いしてました
目的はTCP/IPプログラミングの勉強です チャット機能を持ったプログラムはTCP/IPを理解する上で作りたいと思ってるものです
で質問なのですがサーバプログラムは作成しないといけないのでしょうか?
プロバイダーのサーバにつないでMSNメッセンジャーのような感じで作りたいのですが

No. 2845 # 68user 2002/07/05 (金) 00:37:15
>>2840 紅絹
> HTTPでファイル転送するものをC言語で作りたいのですが可能でしょうか?
やろうと思えば何だって可能ですが、そもそもファイル転送って何ですか?
ファイルを GET することですか? それとも
      http://tohoho.wakusei.ne.jp/wwwxx034.htm
のようにファイルをアップロードすることですか?

>>2843 シゲ
> /etc/rc.d/rc.local に起動コマンドを書き込んでも起動しません。
Linux なら
    http://www.zdnet.co.jp/help/howto/linux/0007master/01/08.html
のように S99PostgrSQL と K99PostgreSQL を作るのが普通だと思います。

>>2844 Tetsu
> で質問なのですがサーバプログラムは作成しないといけないので
> しょうか? プロバイダーのサーバにつないでMSNメッセンジャーの
> ような感じで作りたいのですが
IRC や ICQ や MSN メッセンジャーのように、既にどこかにサーバが
立ち上がっているのなら、わざわざサーバは作らなくてもいいです。

ただし、こういうのを読んでプロトコルを理解する必要があります。
    IRC: http://www3.alpha-net.ne.jp/users/tycho/mokuji.htm
    ICQ: http://www.d.kth.se/~d95-mih/icq/
    MSN メッセンジャー:
              http://www.tlsecurity.net/Textware/Misc/draft-movva-msn-messenger-protocol-00.txt (これは古い)

作るのにとても苦労するでしょうけど、まぁこういうのが好きならば
結構楽しいと思います。

    苦労しつつも楽しんでいる人々: http://pc.2ch.net/test/read.cgi/tech/1006154451/

No. 2846 # シド 2002/07/05 (金) 10:02:14
マウント、シェア関係はほとんど解決できました。

1つ解らないことがあるので、教えてください。
sunOS Solaris7 を使用しています。
NFS サーバーで NFS サービスの実行があるのですが
dfmountsコマンドを実行したいとき、どのデーモンを起動すればいいのか?

mountの場合、mountdプロセスが起動していれば、mountコマンドが実行できました。

No. 2847 # mattu 2002/07/05 (金) 11:39:58
教えてください。
現在POSTをつかったHTTPクライアントをC言語で作成しているのですが、[HTTPクライアントを作ってみよう]のPOSTメソッドを参考に
        sprintf(send_buf, "POST %s HTTP/1.0 \r\n", path);
        write(s, send_buf, strlen(send_buf));
        sprintf(send_buf, "Content-Length:8\r\n");
        write(s, send_buf, strlen(send_buf));
        sprintf(send_buf, "Content-Type:text/plain\r\n", path);
        write(s, send_buf, strlen(send_buf));
        sprintf(send_buf, "\r\n");
        write(s, send_buf, strlen(send_buf));
        sprintf(send_buf,"NAME=aaa\r\n");
        write(s, send_buf, strlen(send_buf));
という風に作ってみたのですが、ヘッダの方は正常に送信されている
みたいですが、パラメータが正常に送信されていないようなんです。
ご指摘よろしくお願いします。

No. 2848 # かず 2002/07/05 (金) 13:07:33
教えてくれた方、ありがとうございました。
その後四苦八苦してなんとか自分で解決できました。
ありがとうございました。

No. 2849 # 紅絹 2002/07/05 (金) 16:20:07
ご回答ありがとうございます。
ファイル転送についてですが、GETとアップロードの両方おこなうものを作りたいと思っています。説明不足で申し訳ありませんでした。

No. 2850 # しっぽ 2002/07/08 (月) 11:26:17
はじめまして、いつもお世話になっております

PerlでTCPのSYNを一度だけ投げて任意の時間内にSYN ACKが返ってこなかったら
タイムアウト処理を、と言ったことをしたいのですが、以下のプログラムでは
うまく行きませんでした。TCPdumpで見てたところ、何回もSYNを投げなおした後
数分後にやっとエラーメッセージを表示してくれます。

よくよく見てみたところ、リトライの間隔がTimeOutの設定に関係なく
最初は3秒、次が6秒、12,24,48秒となっていて最後に96秒待った後
エラーメッセージを出す動きをしていました。

何かアドバイスなど有りましたらよろしくお願いいたします
なお、PerlのVersionはThis is perl, v5.6.1 built for i386-linux-thread-multi です

    $socket = new IO::Socket::INET (
        PeerAddr => "$address",
        PeerPort => "$port",
        Proto => 'tcp',
        TimeOut => 10 );

    unless ($socket) {
        print STDERR "Connection Error at $date\n";
        close($socket);
        }

No. 2851 # 68user 2002/07/08 (月) 11:53:51
>>2850 しっぽ
> PerlでTCPのSYNを一度だけ投げて任意の時間内にSYN ACKが返ってこなかったら
その辺を管理するのは OS の TCP スタックなので、プログラム側
からはどうにもなりません。

> よくよく見てみたところ、リトライの間隔がTimeOutの設定に関係なく
> 最初は3秒、次が6秒、12,24,48秒となっていて最後に96秒待った後
> エラーメッセージを出す動きをしていました。
これも、そういうものです。

Solaris だとタイムアウトまでの時間を変更できたしますが、その他の
OS では変更できない可能性が高いです。

もし connect 時のタイムアウト処理をしたいという目的ならば、
ノンブロッキングソケットを使いましょう。


>>2847 mattu
> パラメータが正常に送信されていないようなんです。
その判断が間違っているような気がします。そう判断するに至った
根拠が明示されていないので、ただのあてずっぽうですが。

No. 2852 # mattu 2002/07/08 (月) 12:21:48
ご回答ありがとうございます。
別にあてずっぽうではなく、サーバ側でデバックにて確認してみると、渡しているデータが入ってなかったのと、渡されたヘッダ・パラメータがファイルに出力されるようにしており、JAVAで作成したものでしたら正常に出力されるのですが、Cで作成したもので試してみるとヘッダの部分のみ出力されるのでそう思いました。デバック等にはVAJを使用しております。
言葉不足ですみませんでした。

No. 2853 # 68user 2002/07/08 (月) 12:33:13
>>2852 mattu
    - ボディの最後の \r\n は不要 (もし \r\n を付けるなら Content-Length は
        10 であるべき。でも \r\n 付けていいのかな?)
    - リクエストに Content-Type ヘッダは不要
という点を直しても まだボディが渡らないようなら、その C のプログラムが
おかしいんだと思います (てゆーか、Java でうまくいって C でうまくいかない
なら、C の方を疑うべきでしょう)。

詳しくはこちらなど。http://www.studyinghttp.net/headers.html

No. 2854 # シゲ 2002/07/08 (月) 16:24:29
>>2845出来ました。ありがとうございます。

No. 2855 # シド 2002/07/09 (火) 09:45:44
教えてください。
showmountコマンドは、OSのサポートバージョン等が制限されていますか。

showmountコマンドの実行制限が何かありましたら、教えてください。

No. 2856 # mattu 2002/07/09 (火) 14:03:44
ご回答ありがとうございます
Cで作るHTTPクライアントの件ですが、やはりボディが渡りません。
ソースの方を確認しましたが、おかしいと思われる箇所は見つかりませんでした。
環境が原因で渡らないというのはあるんでしょうか?
現在はUNIX上でコンパイル・実行をしてWin2000上のVAJにつないでいるんですが、関係あるのでしょうか?
また、ボディの書き方で何か注意しとくべきことありますでしょうか?
よろしくお願いします。

No. 2857 # 68user 2002/07/10 (水) 00:51:25
>>2856 mattu
> ボディの書き方で何か注意しとくべきことありますでしょうか?
結局何をどうしたのかわからないので、何とも言えません。

    - VAJ をやめて別のサーバ (Apache など) にしてみる
    - パケットをモニタして、java 版と C 版の違いを調べる
あたりをやれば何かわかるんじゃないでしょうか。

>>2856 mattu
>>2855 シド
とりあえず
    http://www.hyuki.com/writing/techask.html
を読んでみてください。

No. 2858 # しっぽ 2002/07/11 (木) 12:37:18
>>2851 68user

ご回答ありがとうございます
そんな気はしてたのですが、やっぱりそうですか

ただ、TimeOut => 10 の所は何に反映されるのかってのがちょっと気になりました。
確か<$socket>やsysreadで読んだときに読むべきデータがないと
TimeOutの時間を過ぎても返ってこなかったと思いますので…

>ノンブロッキングソケットを使いましょう。

これってつまりは「読むべきデータが無いときに待たない」って
事ですよね。Perlでは使えますでしょうか??

確立時の話じゃないですけど、Cのrecvなんかは待たないので
便利だったり不便だったりといった感じではあったのですが…

No. 2859 # 68user 2002/07/11 (木) 20:45:02
>>2850 しっぽ
> PerlでTCPのSYNを一度だけ投げて任意の時間内にSYN ACKが返ってこなかったら
> タイムアウト処理を、と言ったことをしたいのですが
この目的を聞かせてください。connect で数分待ってしまうのがイヤだから
なんとかしたい、ということだと受け取ったのですが、

> Cのrecvなんかは
ということは、read/write のタイムアウト管理 {が or も} 目的なのですか?

No. 2860 # KL 2002/07/12 (金) 09:09:48
>>2850 しっぽ

IO::Socket::INETなんて高級な物を何故そこで使うのかがわかりませんが、
http://www.cotse.com/sw/portscan/halfscan.c
のプログラムと同等のことをPerlからやりたいなら、
http://search.cpan.org/doc/SKOLYCHEV/Net-RawIP-0.09d/RawIP.pm
でなんとかできませんか? libpcapのラッパーなのでそれがmakeに要る
ようです。
タイムアウトは、
>なお、PerlのVersionはThis is perl, v5.6.1 built for i386-linux-thread-multi です
とのことですから、threadを使ってなんとかできそうですが
Perlのthreadなんて使ったこと無いのでどうなのか知りません。
Rubyなら
http://www.goto.info.waseda.ac.jp/~fukusima/ruby/pcap-j.html
なんてのもありますがこっちは目的の機能は無いようにみえます。

No. 2861 # has 2002/07/15 (月) 00:45:53
未だRedhatで名前解決できず、気が向いては眺め、弱っています。
Redhat7.1.94(雑誌に付属)を再インストールしてみましたが、
症状は変わりませんでした。

>>2814 68user
[netstat -s]は、どういった項目をどのような観点から観察したらよいでしょうか?
使ったことも知識も無いので、よかったら今後のためにもアドバイスください。

>>2779 has
いまさら経緯の説明をはじめるのも遅すぎかとは思うのですが、
そもそもこういった状態になったのは、LANからインターネットへの回線が
ISDNからADSLに変わり、それと同時に各ユーザマシンに割り当てられるIPが
グローバルIPからプライベートIPに変わってからでした。
それまではRedhatからでも名前解決に時間がかかりながらも
なんとかアクセスできていました。
# Win2kとのデュアルブートなんですが、ADSLになる以前からも、
# Win2kは素早く名前解決できてRedhatで時間がかかるという差が
# あったことが、既におかしかったのかもしれません…

とりあえず現在の状況はこんな感じでうまくいっていません。
以上ご報告まで。

No. 2862 # HP-UXSE 2002/07/15 (月) 18:21:06
はじめまして。

HP-UX11のインストールをされた方がいらしたら幸いです。
質問があります。
locale -a
で表示されていないロケールを、OSインストール後に、個別でインストールできるでしょうか?OSの入れなおししか、方法は無いでしょうか?

# setenv LANG japanese

を設定しても、Warningが出てしまいます。何とか個別でインストールしたいのですが・・・

乱文ですみません。よろしくお願いします。

No. 2863 # とも 2002/07/19 (金) 21:20:59
はじめまして
現在Solaris2.6 + iPlanet4.0 でWebサーバを利用しています。
先日CGIを使いたいとの要望がありiPlanetに対してCGIの設定を行った
のですが、"Method Not Allow"というエラーがブラウザに表示され、
CGIを実行することができません。
原因がわかる方、ご教授願えないでしょうか。
iPlanetに対して行った設定は下記のようなものです。
<やりたいこと>
〜/cgi/ ディレクトリに設置したcgiファイルを実行したい

1.サーバマネージャで[Program]→[CGI Directory]を選択し、上記ディレクトリをURLにマッピング
2.サーバマネージャで[Program]→[CGI File Type]で上記ディレクトリを選択し、ON状態に設定
3.利用するCGIファイルのパーミッションに777を設定。とりあえず動かすのが目的なのでフルアクセスを許可してみました(^^;

No. 2864 # 68user 2002/07/20 (土) 22:19:14
>>2861 has
えー、混乱してきたのんでまとめると、

    /etc/host.conf
        order hosts,bind
    /etc/resolv.conf
        nameserver 192.168.0.1

    名前解決ができない。
        netscape や perl -e "use Socket;print inet_ntoa(inet_aton('www.jp.freebsd.org'))" は NG。
        nslookup, host, dig は OK。
            → gethostbyname 系がダメっぽい。
        dig は OK? NG?

    tcpdump の結果
        netscape も perl も query 投げていないようだ。

    strace dig の結果
        socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
        socket(PF_INET6, SOCK_STREAM, 0) = -1 ENOSYS (Function not implemented)
        socket(PF_INET6, SOCK_STREAM, 0) = -1 ENOSYS (Function not implemented)
        socket(PF_INET6, SOCK_STREAM, 0) = -1 EAFNOSUPPORT (Address family not supported by protocol)
            connect はしていないようだ (by has)
            → これは dig は名前解決できないという意味? nslookup と host が OK で、
                  dig が NG ならば、ちょっと理解できません。UDP は「connect して send」
                  「connect して send」の両方のやり方がありますが、dig は「conenct
                  して send」するはず (てゆーか大抵の DNS クライアントは connect すると
                  思う)。

    strace perl の結果
        socket(PF_UNIX, SOCK_STREAM, 0) = 3
        connect(3, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory)
        socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
        connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0
        socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
        connect(3, {sin_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.1")}}, 28) = 0
        → perl (から呼ばれる libc の resolver) は正常動作していると思う。これで
              パケットが飛ばないなら、OS の TCP/IP スタックが腐ってるとしか…。でも
              nslookup や host は OK というなら違うのかなぁ。nslookup や host を
              strace するとどうなるんでしょう。

> [netstat -s]は、どういった項目をどのような観点から観察したらよいでしょうか?
えー、UDP を投げた後 ICMP (かな?) が返ってくるサマを見て、何か
わかるかなーと思いましたが、今考えるとおそらく netstat -s では
原因まではわからないでしょうね。netstat -s については、2〜3ヵ月
以内の UNIX USER に詳しく説明されていましたので (Solaris,FreeBSD,
Linux の netstat -s の違いも含め)、興味があればそちらを。

あと、本当にお困りなら linux.or.jp あたりのメーリングリストで
質問した方が早いと思うですよ (もちろん解決しなくてもいいなら
こっちで続けても構いません)。

No. 2865 # 68user 2002/07/20 (土) 22:31:41
>>2862 HP-UXSE
> locale -a で表示されていないロケールを、OSインストール後に、
> 個別でインストールできるでしょうか?
HP-UX は使ったことがないのでわかりません。僕は Solaris で同じ
ことをする正しい方法を知りたい。

# 昔 ja_JP.eucJP ロケールが入ってなかった Solaris に、他の
# Solaris マシンから/usr/share/locale/ja_JP.eucJP (だったかな?)
# をごっそり持ってきて動かしたことがある。

>>2863 とも
残念ながら iPlanet も使ったことありませんのですよ。

No. 2866 # 68user 2002/07/22 (月) 16:30:46
>>2861 has
そうそう、/etc/nsswitch.conf は
    hosts: files dns
てな感じになってますか?

No. 2867 # しっぽ 2002/07/24 (水) 10:52:32
>>2859 & 2860

レスありがとうございます

>この目的を聞かせてください。connect で数分待ってしまうのがイヤだから
>なんとかしたい、ということだと受け取ったのですが、

サーバーのサービスの監視が目的です。L4SW(サーバーロードバランサー)なんかだと
5秒間隔のSYNに3回連続で応答しなければ死んだと見なすなんてヘルスチェックを
良くやるのですが…、3分にもわたって6回連続で応答しない場合のみ死んだと見なす
ってのはちょっと嬉しくないです

#これ書いててL4SWが余ってるからそれでやっても良いことに気づいた…(^^;

Writeのタイムアウトの方法は知りませんが、readのタイムアウトは以前
$selector->can_read あたりをやってみて上手くできていたような気がします



>IO::Socket::INETなんて高級な物を何故そこで使うのかがわかりませんが、

低水準な物の存在を知らなかったので…
Net::RawIP ってのは名前からして使えそうな気がします。ぐぐるで調べて
何件か出てきたので見てるところですが、ただ今のところ送るのはともかく
その後どうやって受信したら良いかが良くわかってなかったりします
まあAttackingに使うには良いのかも知れませんが

No. 2868 # 68user 2002/07/24 (水) 11:59:32
>>2867 しっぽ
であれば、ずっと connect しっぱなしで定期的にデータを
送り、返答がなければ異常とみなすのはどうでしょうか?

で、connect のタイムアウトですが、IO::Socket のソースをちらっと
見て $SIG{ALRM} やら alarm やら書いてあったので、connect 時にも
タイムアウトが働くはず…と思っていたのですが、実際に試してみると
タイムアウトになりませんでした。なので、

    $SIG{ALRM}=sub { print "SIGALRM!\n"; };
    alarm(10);
    $socket = new IO::Socket::INET (...);
    alarm(0);

こんな感じで。

No. 2869 # 68user 2002/07/24 (水) 12:09:52
>>2868 68user
ちなみに connect 中に SIGALRM が飛んでくると $! (errno) には
    Interrupted system call
が入ります。でも、IO::Socket は内部で $! が潰されてしまう
ようですね。

そういう意味でも、KL さんのおっしゃるとおり高級なものを
使うのは避けた方がよいかも。

No. 2870 # KL 2002/07/25 (木) 22:31:03
>>2867 しっぽ

>何件か出てきたので見てるところですが、ただ今のところ送るのはともかく
>その後どうやって受信したら良いかが良くわかってなかったりします

sendメソッドがありますがrecvが無いですね。
前記の通りRawIPはlibpcapのラッパーなので、libpcapへのインターフェイス
がPerlに露出されてます。キャプチャせよということでしょう。
http://search.cpan.org/doc/SKOLYCHEV/Net-RawIP-0.09d/RawIP/libpcap.pod

halfscan.cを(Perlなり他の手段を経由するなりして)raw socketの使えるシェル
から使えば一番手短に済んで良いと思いますけども。
Perlでなければならない理由が何かあるのでしょうか。また、監視対象のサービ
スも何か分からないので、halfscan.cが一番汎用で楽です。

>まあAttackingに使うには良いのかも知れませんが

どこがどのように良いのでしょう?

>>2868 68user

「connectしっぱなしで対象サービスを監視しているサービスが
正常に動いているか」を監視するサービスが必要で、さらにその
サービスを監視するサービスが...というのを考えつきました 笑
この循環を止めるには、せいぜいhalfscan.cを、切れない回線の
向こうにある落ちないOSから定期実行するか、もしくはしっぽさん
の仰られるような信頼性の高い機械を使うしかないのでは。

No. 2871 # has 2002/07/26 (金) 07:19:53
>>2864 68user
> 名前解決ができない。
nslookup,host,digは動作OKです。

> → これは dig は名前解決できないという意味? nslookup と host が OK で、
> dig が NG ならば、ちょっと理解できません。
strace digについては、dig自体は正常に動作し名前解決しているが、
ご指摘のsend()のコールが見つからないという意味です。
かわりにwrite()のコールがあるので、sendではなくwriteを使っているのでは
と想像していますが、straceで表示されるwriteで送っている文字列(?)は
内容が意味不明で、writeがsendの代わりに使っていると断言する自信は
ありません(dnsライブラリのソースや解説を見たわけではないので)。
実際には次のようになります。

% strace dig www.jp.freebsd.org >& strace-dig.txt
% grep 'write(' strace-dig.txt
write(4, "\t\0\0\0\5\0\0\0\2\0\377\277\266\3066\1\0\240\5\10\340"..., 148) = 148
write(4, "\200-(@\0\0\0\0\0\372\377\277\200T$@\10P<@\3@\0\200\0\0"..., 148) = 148
write(4, "\200-(@\0\0\0\0\20\372\377\277\220q$@XP<@\3@\0\200\0\0"..., 148) = 148
write(4, "\200-(@\0\0\0\0\0\372\377\277 \365$@\350\"\6\10\3@\0\200"..., 148) = 148
write(4, "\200-(@\1\0\0\0\2\4\0\0Ho\26@\320\371\377\2771\220\0@\334"..., 148) = 148
write(6, "\377\377\377\377", 4) = 4
write(4, "\200-(@\1\0\0\0\4\f\0\0\30V(@\260\214\'@\240\224;@\310"..., 148) = 148
write(4, "\200-(@\1\0\0\0\3\10\0\0\376\274\'@\340\"\6\10\260\230"..., 148) = 148
write(4, "\200-(@\2\0\0\0\0\0\0\0*\22:@t\241;@@0<@8\372\377\277\372"..., 148) = 148

> → perl (から呼ばれる libc の resolver) は正常動作していると思う。
確かに正常動作しているように見えます(想像ですが)。

ここで気づいたことがあるのですが、dnsを直接操作するコマンドと
gethostbynameを呼んでいると思われるコマンドで互いのstraceの結果を見比べると、
dns処理のためにオープンしているライブラリが異なっているようです。

またネットを検索していて気づいたのですが、glib2.1.??あたりにバグが
あるらしいです(情報自体は古いですが)。
もしかしたらバグのあるバージョンかもしれないので調べてみます
(今回の名前解決とは関係のないバグかもしれませんが…)。

> netstat -s については、2〜3ヵ月以内の UNIX USER に詳しく説明されていましたので
見つけたら是非読んでみようと思います(書泉行き?)。

> あと、本当にお困りなら linux.or.jp あたりのメーリングリストで
> 質問した方が早いと思うですよ (もちろん解決しなくてもいいなら
> こっちで続けても構いません)。
解決しなくていいわけではないですが、まだねばりたいです。
いつまでも同じ話題でいいかげん飽きている、という気もしますが、
もう少しお付き合いくだせい。

No. 2872 # has 2002/07/26 (金) 07:24:41
>>2866 68user
> そうそう、/etc/nsswitch.conf は
> hosts: files dns
> てな感じになってますか?
ご指摘の記述は存在しました。

No. 2873 # kaworu 2002/07/28 (日) 03:21:28
初めまして。たまにこのホームページにお邪魔させて頂いてます。
FreeBSDのFileSystemについて質問があります。
早速ですが、質問させていただきます。
iノード番号から、struct inodeまたはstruct dinodeを取得する関数(system call)があれば、その関数名を知りたいのですが。
どなたか、ご存知の方はいらっしゃいませんでしょうか?

No. 2874 # しんとろ 2002/08/01 (木) 02:25:47
初めまして。すばらしいサイトですね!
私はまだunix初心者なので、貴サイトにはお世話になっております。

Mewについて調べたところ、
http://www.mew.org/index-j.html
へのリンクが切れてました。
今は
http://www.mew.org/index.html.ja
もしくは
http://www.mew.org/
で行けると思います。

これからも頑張ってください。

No. 2875 # 68user 2002/08/01 (木) 03:21:31
>>2873 kaworu
> iノード番号から、struct inodeまたはstruct dinodeを
> 取得する関数(system call)があれば
たぶんないです。

struct inode や struct dinode は UFS にしか存在しないので、
UFS, NFS, DOS ,ext3, VFAT, FAT32 など、複数のファイルシステムを
サポートしなければならないシステムコールとしては存在しないです。

もしやるなら /dev/da0c などのデバイスを直接オープンすること
になると思いますが、clri, fsck, fsdb などのソースが参考に
なるかもしれません。

>>2871 has
> dns処理のためにオープンしているライブラリが異なっているようです。
とりあえず ldd でどのライブラリを使っているか見たり、nm や
objdump でどの関数を使っているか調べてみるとよいかもしれません。

No. 2876 # 68user 2002/08/01 (木) 03:27:19
>>2875 68user
> struct inode や struct dinode は UFS にしか存在しないので、
ああ、いきなり嘘を書いてしまった。

struct inode はメモリ内 inode なので、全ファイルシステムで
利用可能ですね。

No. 2877 # カトウ [E-mail] 2002/08/12 (月) 10:53:17
はじめまして!!UNIX初心者なのですが、こちらには本当にお世話になっております。
素晴らしいサイトだと思います。
数あるコマンドリファレンス本がほとんど無用になりました。

でも先週、なぜかまったくアクセスできなくなってしまい、大変つらい思いをしました。
こんな聞き方失礼でしょうが、こちら、閉鎖されてしまう予定とかないですよね?
もしなくなってしまったらとてつもなく悲しいです。業務にも支障が出てしまいます(悲しくて(笑))
もし一括ダウンロード等の仕組みがあったらぜひバックアップしておきたいくらいです。
ぜひぜひ永続を願わんことを・・・管理人様の労力を無視した勝手な発言で申し訳ありませんが。

No. 2878 # Ash [E-mail] 2002/08/12 (月) 23:36:23
はじめまして。いつもいつもUNIXの勉強でお世話になっています。
本当に素晴らしいサイトですね。
私もダウンロード等で保存しておきたいぐらいです。
市販の参考書よりもわかりやすく、とても参考になります。
これからもよろしくお願いします。

No. 2879 # hiro [E-mail] 2002/08/20 (火) 18:02:22
はじめまして。UNIX初心者なのが、いつもお世話になってます。
今、会社でHP−UNIX10.20を使用しています。(勉強中)
DATテープにデータをバックアップするのにfbackupコマンドを使用しています。このfbackupでバックアップした内容を確認するコマンドって何ですか?ちなみにtar cvでバックアップした内容の確認はtar tvで確認できますよね?以上、ご存知の方教えてください。

No. 2880 # 68user 2002/08/21 (水) 21:44:18
>>2877 カトウ
> でも先週、なぜかまったくアクセスできなくなってしまい、
> 大変つらい思いをしました。
8/2 あたりから 10日ほどマシンが落ちてました。マシンがリモートに
あるため対応が遅くなり失礼しました。

> こちら、閉鎖されてしまう予定とかないですよね?

現時点では閉鎖予定はないですが、なにぶんにもタダで借りさせていただいて
るものですから、マシンがクラッシュしたらどうなるかわかりません。そしたら
どこかでサーバ探すでしょうが、それもいつになるかわかりませんし、移転の
お知らせはできないかもしれません。

それまでに頑張って man と google だけで問題解決できるようになって
ください。

>>2879 hiro
man fbackup を読みましょう。
    http://www.calpoly.edu/cgi-bin/man-cgi?fbackup
読むのが面倒なら、SEE ALSO の項目だけ見て、それっぽいコマンドを
試しましょう。僕は HP-UX を使ったことがないので、どれがそのコマンド
なのかはわかりません。

No. 2881 # シゲ [E-mail] 2002/08/22 (木) 23:30:28
シゲと申します。
今、red hat 7.1でパッケージソフト開発を行っています。
複数のプロセスが立ち上がるもので、それぞれのメモリー使用量を確認を行っています。
meminfoにより合計のメモリ使用量を測ると13Mぐらいしかないのに、それぞれのプロセスの /proc/(プロセス番号)/status のVmSizeを合計すると、150Mぐらいになってしまいます。
150Mは間違いなく間違っていると思います。
単プロセスのメモリ使用量ってほかに計り方がないのでしょうか?
ご教授お願いします。

No. 2882 # 68user 2002/08/22 (木) 23:39:45
>>2881 シゲ
例えば、ls を同時に 2 プロセス実行していても、メモリ上に配置される /bin/ls の
テキスト領域 (命令文の領域) は 1 つしかありません。同様に libc などのライブラリの
テキスト領域も共有されます。そこらへんで食い違いが出ているのではないかと思います。

> 単プロセスのメモリ使用量ってほかに計り方がないのでしょうか?

どーなんでしょうねー。status の Vm* を足したり引いたりしたら
計算できそうな気もしますが、正確なところはわかりません。

まぁ、ここらへんのテキスト領域をどう計算したいのかにもよると思います。

No. 2883 # シケ゛ [E-mail] 2002/08/23 (金) 00:38:47
ご教授有難うございます。
帰りの電車の中で考えていたら、ひらめきました。
全プロセス立ち上げ時の,/proc/meminfoの全使用メモリ量から、測定したいプロセスをkillしたときの/proc/meminfoの全使用メモリ量を引けば良い気がしました。
しかし、考えてみれば68userさんのおっしゃるとおり、共有メモリが存在するから、正確な結果ではありませんね・・・。

こまったな・・・。

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

No. 2884 # 68user 2002/08/23 (金) 02:08:32
>>2883 シケ゛
結局は用途次第なわけですが、普通の環境であれば daemon 類が libc を
使っているでしょうから、そこらへんは無視していいでしょう。

あとは、横軸: プロセス数、縦軸: メモリ使用量なグラフでも書いて、
    「n クライアント、m リクエスト/sec だと XX MB 程度必要」
とか書いておけばいいんじゃないでしょうか。

# 手抜き?

No. 2885 # ホームズ 2002/08/28 (水) 11:35:24
はじめまして。
いつもこちらのサイトにお世話になっています。

パスの設定のされていないコマンドにパスを設定するには
どうすればよいのでしょうか(絶対パスでは実行できます)
初歩的な質問で恐縮ですがお教えいただけませんでしょうか。
よろしくお願いいたします。

No. 2886 # 68user 2002/08/28 (水) 13:07:36
>>2885 ホームズ
    % hoge
    hoge: Command not found.
    % /foo/bar/hoge
    (実行できる)

という状況で、hoge とだけタイプすれば実行できるようにするには
どうしたらよいか、ということですか?

環境変数を使うのが一番簡単でしょう。
    % setenv PATH ${PATH}:/foo/bar (csh・tcsh 系)
    $ PATH=${PATH}:/foo/bar; export PATH (sh・bash 系)

csh・tcsh 系なら
      set path=($path /foo/bar)
でもいいです。

No. 2887 # ホームズ 2002/08/28 (水) 13:41:04
お返事ありがとうございます。

68userさんの言われたとおり設定したらできました。
どうもありがとうございました。

No. 2888 # 26歳 [E-mail] 2002/09/04 (水) 21:32:05
初めまして、よろしくおねがいします。

お聞きしたいことがあります。
tar xvzf .tgz
して、うまく展開したのですが、
もう一度 練習で、やってみようと思うと、
Only one compression option permitted
とでてしまいます。
一回しかできないという意味なのでしょうか?

一回、   .tgzを消して試しましたが、同じでした。

初歩的かもわかりませんがよろしくお願いします。
  

No. 2889 # 68user 2002/09/05 (木) 08:35:06
>>2888 26歳
> Only one compression option permitted
    一つの圧縮オプションしか許されていない。
=複数の圧縮オプションを指定することはできない。

というわけで、Z・z・y・j などの圧縮形式を指定するオプションを、
複数個指定したのでしょう。

例えば tar zxvzf とか、tar xvZzf とか。

No. 2890 # Bootick 2002/09/08 (日) 00:28:45
はじめまして、こんにちは。

環境:Redhat7.3
ログインしているユーザが、現在何処のディレクトリにいるか
っていうのを調べることは可能でしょうか?
「who」のオプションであったりしますか?

宜しくお願いします。

No. 2891 # 68user 2002/09/08 (日) 19:19:39
>>2890 Bootick
root 権限があるなら ps -ef eww で環境変数 PWD を見るとか、
/proc の下を覗いてみるとかですかねぇ。

root 権限がないなら無理ではないかと思います。

No. 2892 # コメン 2002/09/10 (火) 17:50:03
telnetやcgiを使って本IPをメモするソースがほしいのですが、どうしたらいいですか?それと出来れば設置方法も教えてほしいです。素人なのでまったく分かりません。PCに詳しい方、お願いします

No. 2893 # はさみ 2002/09/13 (金) 10:58:28
はじめまして。
先日 /dev/null が消えてしまい、少なからずシステムに影響が出てしまいました。
それまで安定稼動していたのに、何故突然消えてしまったのか原因がわかりません。サーバ上で特に作業はしていませんでした。
どなたか同じ現象に遭遇した方いらっしゃいませんか?

No. 2894 # あきゆき 2002/09/19 (木) 10:36:38
はじめまして。
いつもお世話になっています。

Linuxにて「Proxy サーバ経由の SSL 通信」を行おうと考えております。
「ネットワークプログラミングの基礎知識」にSSL 通信の方法が
記載されていますが、Proxy 経由の方法が分からず、現在格闘中です。

Proxy サーバへの接続はできました(HTTP の通信は OK です)。
Linux & C言語の初心者で恐縮ですが、
これらの技術的なアドバイス・参考になるサイトなどがありましたら、
ご教授下さい。

よろしくお願いします。

No. 2895 # 68user 2002/09/19 (木) 12:22:03
>>2894 あきゆき
平文で、
    CONNECT target.host.com:443 HTTP/1.0\r\n
    Host: target.host.com\r\n
    \r\n
を送って、サーバから
    \r\n\r\n
が来るまで読み込み (全データが到着するのを待つ)、その中に " 200 " が
含まれていれば接続成功。

その後は SSL でやりとりする、という方法で一応接続はできています。

(" 200 " が含まれていれば OK などという適当な方法以外の) まっとうな
やり方は知りません

No. 2896 # あきゆき 2002/09/19 (木) 13:34:16
>>2895 68user
早速のご返答、ありがとうございます。

ご指摘のように、"CONNECT 〜"を行い、サーバーから
"HTTP/1.0 200 Connection established"という応答がきたので、
その後、下記の SSL の設定を行いました。
----------
SSL_load_error_strings
SSL_library_init
SSL_CTX_new
SSL_new
SSL_set_fd
SSL_connect←戻り値"0"が返されます。
----------

SSL_connect で TLS/SSL handshake に失敗したので、
SSL_get_error 関数を実行すると "5"が返されました。

現在、これについて調査中ですが、原因が何か分かりますか?
SSL のやりとりに問題がありますでしょうか?
SSL のやりとりは、
「ネットワークプログラミングの基礎知識−SSL でアクセスしてみよう」の
C言語のソースの「/* ここからが SSL */」以下と同様です。
(検証中のため、「SSL でアクセスしてみよう」と同じサイトにアクセスして、結果を得ようとしております)

何卒よろしくお願いします。

No. 2897 # あきゆき 2002/09/19 (木) 14:31:45
>>2896 あきゆき

先程の書込みで不足な情報を追加します。

SSL_get_error で返される値を記載します。

1.SSL_CTX_new(SSLv2_client_method())
→SSL_connect[返り値"0"]、SSL_get_error[返り値"6"]

2.SSL_CTX_new(SSLv3_client_method())
→SSL_connect[返り値"0"]、SSL_get_error[返り値"5"]

3.SSL_CTX_new(SSLv23_client_method())
→SSL_connect[返り値"0"]、SSL_get_error[返り値"5"]

よろしくお願いします。

No. 2898 # あきゆき 2002/09/19 (木) 15:34:26
>>2897 あきゆき

お手数をおかけしました。
「Proxy サーバ経由の SSL 通信」を行うことが出来ました。
Proxy サーバ経由で HTTPS サイトから下記の応答が返されました。
"You have successfully connected using SSL (SSLv2)."

先程の SSL_connect のエラー[返り値"0"]の原因は、
"CONNECT 〜"を送信後の Proxy からの応答待ちの個所でした。

ご迷惑をお掛けして申し訳ありませんでした。
ご返答頂きました 68user さん、誠にありがとうございました。
今後ともよろしくお願いします。

No. 2899 # Kurosawa 2002/09/20 (金) 11:09:58
    お世話になっています。場違いな質問だと思いますが質問させてください。
    CVSでローカルでcommitすればサーバ上で自動的にupdateするようにしたく
loginfoを編集したのですがうまくいきません。
質問が場違いと言ったのは、CVSサーバがUNIX系ではなくウインドウズ環境だからです。cvsntを使ってます。
いろいろ調べた結果loginfoに以下のように書けばよいとの事なんですが
wincvsにてコミットするとエラーがでてしまいます。
diary (date; cat; (sleep 2; cd /home/hoge/diary; cvs -q update -d) &) >> $CVSROOT/CVSROOT/updatelog 2>&1
エラーはnot foundとCould Not Create Child Process (error 2)です。
/home/hoge/diaryや$CVSROOT/CVSROOT/updatelogな書き方がウインドウズでは適用できないと思い
d:\diaryなどに書き換えても駄目でした。

具体的には
loginfo:
test2 (date; cat; (sleep 2; d: cd d:\cvs_test3; cvs -q update -d) &) >> d:\cvs\CVSROOT\updatelog 2>&1
(test2がモジュール名、cvs_test3がupdate先フォルダでいいんですよね?)
エラー:
Executable (date; cat; (sleep 2; d: cd d:\cvs_test3; cvs -q update -d) &) >> d:\cvs\CVSROOT\updatelog 2>&1 not found
Could Not Create Child Process (error 2)

ご存知の方、いらっしゃいましたらご伝授よろしくお願いします。

No. 2900 # Kurosawa 2002/09/20 (金) 14:49:02
自己解決(?)しました。
cvsntを利用した場合、loginfoでの自動更新はできないようです。
WINサーバの場合、cygwinを使用する方法があるみたいなので
その方法を試してみる事にします。
お騒がせしました。

No. 2901 # かなっぺ 2002/09/25 (水) 11:13:07
はじめまして。お力を貸してください。
業務用に、ファイルをアップロードするPerl/CGIを作りました。
エラーもなく動作はしているのですが、巨大なファイルをアップロードするときに、かなりの時間がかかります。
具体的には167MBのファイルをアップロードするのに約40分かかりました。
同じ環境で、同じファイルをFTP(FTP.exe)を使用して転送すると、5分で処理が終了しました。

CGIで時間がかかる原因が、私のソースにあるのか、
CGIのバッファが関係しているのか、それとも他に原因があるのか、
原因の切り分けが出来ずに困っています。

通常、CGIで100MBのファイルをアップロードしようとすると
どれくらいの時間で処理できるのでしょうか?
また、どうすればFTPと同レベルの処理速度に出来るのでしょうか?

ちなみに動作環境はUNIX、線は100BASE、Perl5。
アップロードするCGIにはCGI.pmやcgi-lib.pl等のモジュールは仕様していません。
(それが原因でしょうか?)

サーバのログには以下のように出ています。
(1)[14:17:57] "GET /xxx/ファイル入力用.cgi?flg=1 HTTP/1.1" 200 3413
(2)[14:57:11] "POST /xxx/アップロード用.cgi HTTP/1.1" 200 841

アップロードを行う(2)に処理が移るまでに、40分かかっています。
ということは、データのバッファリングに40分かかっているということなのでしょうか?

No. 2902 # 松本智也 [E-mail] 2002/09/25 (水) 12:15:00
友人がRS/6000でTCP/IPのパケット情報をmili sec単位で取得しそれをレポートとして出力したいんですが何か方法はありますか?

No. 2903 # tomu 2002/09/26 (木) 10:02:13
こんにちわ
いつもお世話になってます。

grepコマンドである検索文字列と、
その次の行を検索すると言うことは、
出来ないでしょうか?

たとえば、
ファイルの中身が
-------------------
aaa\n(改行)
bbb\n(改行)
ccc\n(改行)

aaa\n(改行)
ddd\n(改行)
eee\n(改行)
-------------------

と言うファイルがあったときに、
aaa\n(改行)
bbb\n(改行)

aaa\n(改行)
ddd\n(改行)

という結果を返して貰うことは出来ないでしょうか?

宜しくお願いします。

No. 2904 # D 2002/09/26 (木) 23:33:59
>>2903 tomu

http://x68000.startshop.co.jp/~68user/unix/pickup?grep
をご覧ください。

No. 2905 # tomu 2002/09/27 (金) 10:41:08
Dさん
見逃してました numオプション ^^;
ありがとうございました。

No. 2906 # MATSU 2002/09/27 (金) 15:43:52
はじめまして。

はじめてで恐縮ですが、質問させてください。
sortコマンドでカンマ区切りのdatファイルを
1番目と7番目の項目をキーに昇順、
5番目と6番目の項目をキーに降順
という並べ替えをしたいのですが、可能でしょうか?
よろしくご教授願います。

No. 2907 # のぞみ [URL] 2002/09/29 (日) 06:00:34
こんにちは。
HPを開いているのですが質問があります。
BBSの方にアクセス制限をかけたい人物がいるのですが
どう、打ち込めばよいかわかりません。
BBSを借りている所に質問したのですが
なかなか返事が返ってこないのでこちらに頼ろうと思い
来させて頂きました。m(__)m
どうぞ宜しくお願い致します。
その人物のホスト名は↓
FLA1Aae071.kmm.mesh.ad.jp
なんですが、*.kmm.mesh.ad.jpと打つと
全然似てない私の方まで制限がかかってしまいました。
どう打てば宜しいのでしょうか?
すいませんが教えてください。m(__)m
あと、HPに描いた絵などを無断に使用する人物を
つきとめる事等はできますでしょうか?

No. 2908 # 通りすがり 2002/09/29 (日) 15:17:59
No.2906#MATSUさん
お使いの言語はPerlですか?
Perlメモ
http://www.din.or.jp/~ohzaki/perl.htm#SortMulti
に、複数項目でのソート方法が書いてありますね。
参考になりますでしょうか。

No. 2909 # Kanchan [E-mail] 2002/09/30 (月) 14:15:10
こんにちは。
初めて質問させていただきます。
Solalisのtarコマンドでファイルをtarファイルにまとめようとしたのですが、
    "ディレクトリ階層が深くダンプできません"
というエラーメッセージが出てうまくいきません。
    コマンド:tar cvf tarファイル ./対象ディレクトリ
対処方法を知っている方がいたら、教えていただけませんでしょうか?
よろしくお願いします。

No. 2910 # NT 2002/10/08 (火) 00:18:10
こんにちは
FreeBSDで鯖を立てながら
Perlで簡単なCGIを作っております
質問があるのですが
BBSなどでバイナリファイルのUPLoadは
どのように送ればよいのでしょうか
わかる方が居りましたらお答えをお願い申し上げます

No. 2911 # take 2002/10/10 (木) 12:12:08
突然ですが、
以前このページで紹介していたUNIX関連の本を教えていただけないでしょうか。

No. 2912 # D 2002/10/12 (土) 18:16:14
>>2911 take
右上にある全文検索フォームで適当な単語を入れてみましょう。
「書籍 or 本 or 出版社 or 著者 or 訳者」てな感じで。
あとは http://bookshelves.tripod.co.jp/ とか。

No. 2913 # (^^) 2002/10/17 (木) 23:49:14
こんにちは。突然ですが質問させて下さい。
プロセス番号0〜2の
(swapper)
/sbin/init --
(pagedaemon)
プロセスの役割は何でしょうか?

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