ご回答ありがとうございました。 >>とりあえず Solaris9_x86+Apache1.3.31 だけで試してみるべきでしょう。 ですよね。 ただ、現在のところどうもDNS関連での名前解決の問題っぽいです。 ローカルではDNSを立てていないため、その辺も関連しているのかなという感じです。 クライアントマシンをサーバーのhostsファイルに記述していないのでそれも無関係で はないかもというところです。 というわけで現在作業中です。解決もしくは問題の切り分けができましたら、 またご報告に参上したいと思います。ありがとうございました。 |
はじめまして、少し教えて欲しいのですが、ルータの設定画面などにアクセスする際にポップアップで 表示される認証を自動的に行えないでしょうか?少し古いルータを使ってまして、接続先を自動的に切 り替えるプログラムを作りたいのですが。 |
初めまして。質問があります。 僕は掲示板で書き込みをしていたら、まったく同じIPの方がいて、その方にとっても ご迷惑をかけてしまいました。 そこで質問です。 同じIPがあるのって、不可能なんですか?? |
初めまして。UNIXのみならず、ネットワークについて色々お世話になってます。 NW内で近いコンピュータと通信するというエニーキャストアドレスが在りますが、 何を以って【近い】というのか解りません。 部の勉強会で、近いとは遅延のことか?と発言したところ、 次回発表に「CSMA/CDのキーワードで、NW内近いというものを発表しろ」と 課題が出されました。 調べたところ、CSMA/CDの他、CSMA/CA、ホットポテトルーティング、近隣探索機能(v6)等々出てきました。 しかし、何を以って近いと言うのか、よく解っていません。 ・NW内で【近い】とは何か? ・CSMA/CD、CSMA/CA、ホットポテトルーティング、近隣探索、がどのような仕組みか? 上記について、参考になる資料やサイトがあれば是非とも教えて下さい。宜しくお願い致します。 |
どうも初めまして。ネットワークプログラミング始めたばかりの者です。 ちょっと前までは決まりきったものだと特に気に止めずに流していたのですが、 connect()関数の第2引数が connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) というふうに普通していますが、どういう意味なんでしょうか? servaddrのアドレスさえ渡してやればいいように思うのですが。(ん?その前にC言語の 文法がまだ完全に理解できていなのかも?)servaddr構造体のアドレスをsockaddr構造体 のポインタでキャストしてる?なんかよく分かりません。 助言をお願いします。 |
>>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 を使って いるならば)。 |
>>3921 立神梢一 だいぶ時間が空いてしまいましたが、sslをはずしてコンパイルしてみましたが 変化なく、その後名前解決をもう一度見直したところどちらの状態(ssl有り/無し) でも問題ない速度で動作しました。やはり名前解決周りだったようです。 ご報告が遅くなりました。ありがとうございました。 |
/etc/passwdファイルからグループIDがゼロになっているユーザを出力する場合、 「grep ':00*:' /etc/passwd」とすると rootだけが以下のような内容で引っかかります。 「root:x:0:1:Super-User:/:sbin/sh」 しかし、何故これがひっかかるのかがわかりません。 grepの条件で「:00*:」としているのに、なぜこれを含んでいないrootの 行がひっかかるのでしょうか?ご存知の方、教えていただけませんでしょうか。 OSはSolaris7を使用しています。 |
/etc/passwdファイルからグループIDがゼロになっているユーザを出力する場合、 「grep ':00*:' /etc/passwd」とすると rootだけが以下のような内容で引っかかります。 「root:x:0:1:Super-User:/:sbin/sh」 しかし、何故これがひっかかるのかがわかりません。 grepの条件で「:00*:」としているのに、なぜこれを含んでいないrootの 行がひっかかるのでしょうか?ご存知の方、教えていただけませんでしょうか。 OSはSolaris7を使用しています。 |
>>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 などとすればよいかと思います。 |
>>3924 ネットワーク1年生 ネットワーク的に近いとは同一ネットワーク内のことを指します。 まぁ、普通ならルーターを挟まない通信と言うこと |
>>3930 68user ありがとうございました。 正規表現、もっと勉強してみます。 |
はじめて書き込みをさせていただきます。たろーと申します。 OpenSSLで単純なHTTPSクライアントのプログラミングをしているのですが、 SSL_connect(ssl)関数のタイムアウトの設定の仕方がわかりません。 もしご存知でしたら、教えていただけないでしょうか。 宜しくお願いします。 |
>>3933 たろー > SSL_connect(ssl)関数のタイムアウトの設定の仕方がわかりません。 関数名しか見てませんが SSL_set_timeout や SSL_CTX_set_timeout じゃ ないですかねぇ。ぜひ結果を教えてください。 |
こんばんは。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 が正しくインストールされていないのが原因なのでしょうか?(だとしても、 以前は正常にコンパイルできていました。) どなたか、解決方法を教えていただきたいと思います。 よろしくお願いします。 |
以下のカンマで区切られたデータをフィールド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 ***" |
>>3931 MERCY MERCYさま。ご回答有り難うございます。お礼が遅くなってごめんなさい。 これからもその他、下らないことで質問すると思われますので、 是非とも宜しくお願い致します。 有り難うございました。 |
>>3926 68user 管理者さま。大変お世話になっております。 くだらない質問にも、いつも一番にご回答下さり大変嬉しいです。 本当に有り難うございます。 >> CSMA/CDの他、CSMA/CA、ホットポテトルーティング、近隣探索機能(v6) >CSMA/CD・CSMA/CA は近いという概念とはまったく関係なく、LAN 内での >コリジョンを防止するための仕組みだと思っています。 はい。まさにその通りでした。。 課題を出した上司はNWがどの様に通信しているのかを勉強させたく、 CSMA/CD・CSMA/CAの課題を持ち出したものでした。 コリジョン防止がNW内通信の速さだと思っていた先輩が誤って、 「NW内の近さ」と関連付けアドバイスしてくれたものですから混乱してました。 「UNIXと言うものが、サーバ向が主体」とどこかで思っているので、 こちらでNWの質問までしてしまって申し訳けございませんでした。 とにかく本当に有り難うございました! |
はじめまして。 よろしくお願いいたします。 現在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はログファイルの読み取り行) ------------------------------------------ というようなことが、やりたいのですが、うまくいきません。 ご教授のほどお願いいたします。 |
>>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.*' では駄目ですか? |
>>3940 zsh ありがとうございます。 上手くいきました。 こんな簡単な方法でできるのですね。 考えすぎですね。 |
>>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 にワイルドカードなどが入っていると シェルが展開してしまうので、ログ内容をシェル変数に格納するやり方はお勧め しません。 |
始めまして、こんにちは。 UNIX講習を受けてから5年以上も経つのに、ほとんど初心者です。 基本的な質問ですみません。 tar xvf *.tar で展開して、ファイル情報を表示させたとき、 その内容をファイルに落とすにはどうしたらいいでしょうか? この展開ですべてのファイルがきちんと展開されたか確認したいのです。 (実は1つだけ展開されていない・・・) 本当に、基本的な質問ですみません。 よろしくお願いいたします。 |
初めまして。ポチ公と申します。 ネットワークの勉強中ですがちょっと質問があります。 今、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です。 何故、先頭の数文字が省略されているのが 疑問でしたので、投稿してみました。 もし何か解りましたら教えて頂けたら幸いです。 宜しくお願いします。 |
>>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 の使用を 検討してみてください。 |
「ネットワークプログラミングの基礎知識」の「リンク集・参考書籍」に OpenSSL - 暗号・PKI・SSL/TLS ライブラリの詳細 を追加しました。 http://X68000.q-e-d.net/~68user/net/link-book.html#4274065731 去年頃から、OpenSSL に一番詳しい日本語の解説を書くことを 目指してがんばってきましたが、夢破れました。この本がもっと 前に出ていれば、あんなことやこんなことで悩む必要はなかった のに、と理不尽な怒りすら覚えます。 今後は OpenSSL に一番詳しい日本語のサイトを目指すことにします。 |
お初です。 最近このHPにも大変お世話になってます。 組み込みLinuxでクレジットカードリーダーを試作することになり、 PPPでインターネット経由でサーバと通信するって感じです。 手順その他は私に任せられてたので、独自のプロトコルを考えるのが 面倒だし、ゆくゆくはセキュリティーも対策しないといけないので サーバ側をApache+modsslを使うことにしたのですが、このサイトの情報が 非常に参考になりました。クライアントソフトを解説してあるサイトは 非常に少ないので、大変助かります。 SSLサーバ認証なしで、実験ソフトが動作するところまでは行きました!! でも私のカードを使ってインターネット経由ってのは、まだ怖いので、 クライアント認証に挑戦したいと思います。 そんな記事を書かれるご予定はありませんか?(^^; (クライアント側でクライアントの証明書をリストに追加するだけの ような気がしてますが・・・) これからもがんばってください。 |
>>3947 だんだん 書く気はありますが、もし書く場合は「クライアント認証とは何か」 から始めるつもりなので、いつ書きあがるかは何ともいえません。 要は SSL_CTX_use_certificate_chain_file() などを使ってクライ アント証明書を使えばいいわけですが、詳しいやり方は >>3946 68user の本に書いてあります。 また、概念からして怪しい場合は、 - 自前で CA (認証局) をたてる - クライアントが CSR (証明書発行要求) を作成する - それを受けて CA が証明書を発行する - IE などのブラウザに証明書を組み込む としてまず理解を深めることをお勧めします (ここらへんの手順は 検索すればたくさん見つかります)。 |
はじめまして。 UNIX の部屋 -> コマンド -> cpp にて、 型の別名の定義方法で typedef MYCHAR_P char *; が正しいと紹介されていますが、これは typedef char *MYCHAR_P; の間違いではないでしょうか? |
>>3949 T.Kobayashi > typedef char *MYCHAR_P; > の間違いではないでしょうか? ごもっともであります。修正しました。 http://X68000.q-e-d.net/~68user/unix/pickup?cpp ご指摘ありがとうございました。 |
はじめまして。 いつもコマンドの参考にさせて貰っております。 説明している数や例がわかりやすくて重宝してます。 大した事ではありませんが、気になった部分を2点ほど ■いずれも【TOP >> UNIX の部屋 >> ジャンル別コマンド一覧 >> vi】にて 1.「h 1文字左に移動」がリストからはみ出ています。 2.「編集モード中に"ESC"」=「編集モードに移行」 であれば、リストに入れてはいかがでしょうか。 リストにあれば、閲覧2度目以降の人はそれだけ参考にすればよいので見やすいかと。 (個人的にですが) |
はじめまして。 ソケット通信について教えてください。 Severプログラムでクライアントから ConnectしてきたクライアントがClose処理を行ったかわかりますでしょうか? Connect時は、接続元のIPアドレス・ポートがわかると思いますが クライアントがCloseを行ったかどうかを知りたいのですが? よろしく御願いいたします。 |
>>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 を返すんでしたっけ? この辺 あやふやなので、間違ってたらご指摘ください>誰となく |
初めまして、 ここのサイトの主旨にあった質問かどうかわからないのですが、 質問させて頂きます。 今、開発作業を以下の構成で実施しているのですが、 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サーバが原因と考えているのですが、 うまく問題を切り分けることができません。 わかるかたがいましたら、すみませんがご教授願います。 |
> 3948 . 68user > 要は SSL_CTX_use_certificate_chain_file() などを使ってクライ > アント証明書を使えばいいわけですが、詳しいやり方は あっさり動作しました。 ご指摘ありがとうございます。 |
>>3954 則巻せんべい そういう事象は知らないので何とも言えませんが、とりあえず ethereal などで IE5.5 と NN7.1 のそれぞれのリクエストと レスポンスを観察してみることをお勧めします。 |
お久しぶりです。 その節はお世話になりました。 現在、再びSSLの改造に着手しています。 OpenSSLを使用してクライアントからサーバに HTTP KEEP ALIVE(パーシステントコネクション)を行いたいのですが、 上手く行きません。 HTTPリクエスト時に Getで最初と異なるHTMLファイルを指定し、 Connection: Keep-Alive を要求した後に、 SSL_read()をしても異なるHTMLファイル を読み込む事ができません。 ちなみに、平文のhttpでは読み込む事が出来たのですが、 この辺りの情報が皆無に近くて苦労しています。 OpenSSLの場合は何か特別な事を行なわないと実装できないのでしょうか? 参考URLや書籍など、ご存知な方が居られましたら ご教授下さい。 |
>>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 の値などを見るべきです。 |
バンガードです。 以下の機能の実現方法が分からず困っています。 --------- 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で実現したいと考えています。 |
>>3959 バンガード > echo \$$REP eval "echo $REP" としてみてください。 |