• ベストアンサー

現在何人がHPを見ているか知りたい

現在何人がHPを見てますよ ってプログラムがあるじゃないですかあれはどのように動いているのでしょうか? 調べても完成品をダウンロードしてねっと言うページはいくつか見かけたのですが、ソースの参考例が見つからなくて困っています どういった原理で動いているのでしょうか?

  • CGI
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

その問題を聞いて自分が考えたのは、速さ = 距離 / 時間 でした。 言い換えると、瞬間アクセス数 = 一定時間のアクセス数 / 時間 とやっているのではないかと推測しました。 実際に検索してみると、 http://www.ziyu.net/counter.htmだと、"今現在(正確には過去90秒間)"と書いていますので、自分の推測は正しいことが裏付けられました。 また、一定時間に一定数しか処理を受け付けないようなCGIはファイルにアクセスがあったときのタイムスタンプを書いておき、それを比べることで行います。たとえば、こんな手順です。 1. タイムスタンプを入れたファイルを読み書きロックした状態で開く 2. 一定時間に入っているタイムスタンプだけをタイムスタンプの配列に取り込む 3. 配列の長さが一定数を超えるなら、一定数 - 1に変更 4. 現在の時刻のタイムスタンプを配列の先頭に追加 5. ファイルの先頭にseekして、truncateした上で、配列をファイルに書き戻し、ファイルを閉じる 6. 3で配列の長さが一定数を超えていたら、処理の受け入れを拒否、そうでない場合は許可 あとはこの組み合わせですね。 上記の3の処理を省き、6の処理で配列の長さを返すようにすれば、一定時間に何人アクセスしているかがわかります。つまり、一定時間以内にアクセスした人のタイムスタンプを書いておくファイルを作り、それをCGIが実行されるたびに新しくしつつ、ファイルに入っているタイムスタンプの数を表示するということです。この一定の時間として1分など適当な時間を使えば、「現在 (というか過去1分以内だけど) ○人がアクセスしています」というのはすぐできると思います。 質問をされている方は以前C言語でCGIを作りたいという話をされていたので一応書きますが、 ファイルのロックはシステムコールの呼び出しが必要になりますし、現時刻の取得についてもマイクロ秒単位の時刻がほしいならシステムコールの呼び出しになりますので、書き方はOSによって異なります。 Unixだとそれぞれ、flock、gettimeofday (あるいは秒単位ならtime)について使い方を調べておくと良いでしょう。 まあ、がんばって。

nanaka2223
質問者

お礼

あーーー思いついた ページを見るだけで取得できる情報あった IPアドレスとリモートホスト これを使えばスタンプできるじゃんか 問題はスタンプを消す方法 1さんのやり方だと単位時間当たりに再書き込みだけど ページを見ていないならスタンプからIPアドレスとか消すことができればいけるね チャットにログインしていればチャットメンバーの名前をかくのもいけるはず 作りたいプログラムの3っつのヒントをいただきありがとうございました

nanaka2223
質問者

補足

1さんの作り方が本当だとしたら私が作りたがっていたプログラムとはちょっと違うようです 現在ログインしている人数≠現在ページを見ている人数ってわけではないので寸ね。 同様のプログラムだと思ってたのですが... しかしこのプログラムはプログラムで面白いですね。 1さんのプログラムは時間単位のアクセスカウンターの製造法だと思います。 HPの防衛上必ず作らなきゃいけないプログラムですね 手順1のタイムスタンプはどうやってスタンプを押せるんだという原理が分かりません しかしいろいろ考えてみます。 ありがとうございました。 追伸 flockってPEALの関数だと思ったらCでも使えるんですね

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

その「完成品をダウンロード」したら、ソースコードも付いてないですか? というか、現在配布されているもののほとんどは、PHP,Perl等のスクリプト言語で「完成品=ソースコード」ですが。 C言語でCGIやっている人は少ないので、「C言語のソースコード」を見つけて解決しようとは思わないことです。

nanaka2223
質問者

補足

完成品のソースコードはC言語ですら解読が難しいのです それっぽいソースコードは見つけられる事もあるのですがよく見てみると全然別の目的で書かれたプログラムだって事があってなかなか難しいです。 特定の目的のみかかれたものならまだ解読できたのですけどね それならPealでかかれても多少解読できなくはないのですがそれでも難しくて...

関連するQ&A

  • HPに画像が表示されない・・・・

    HPの画像が、表示されず困っています。 友達が作ったHPなんですが、ソースの表示でみるとタグも正確に貼り付けてあり存在は分かります。 しかし、実際のページを見ると画像が見えません。 IEキャッシュクリアをしたのですが、それでも見えません(汗) このHPが完成する前に、一度見た事があります。その後、友達がHPを少しいじって完成となりました。 強制更新をしても表示されません;; いったい、なにが原因なんでしょうか・・・。

  • 現在見ているHPのURLを取得する方法

    HPを閲覧している時に,その現在見ているページのURLを プログラム上で取得したいのですが,何か方法はありますか?? クリックして,新しいページに行くごとに, そのページのURLをプログラム上で取得して,利用したいのですが. 使用言語はC,C++,perlが好ましいですが, この際,できるなら何の言語でもいいので教えてほしいです. 補足説明がほしい部分があれば,なんでも聞いてください. ややこしいですがよろしくお願いします!

  • HPについて

    HPを作りましたが、 トップページのソースの中に言葉を入れると 検索で引っかかるようになり、より多くの人に見てもらえるとと聞きました。(お分かりでしょうか?) HPのトップページ自体には表示されずにです。リストは10までがいいとも聞きました。 これはどういったソースなのでしょうか? そしてこのソースを分かりやすく教えていただきたいのですが。。。 初心者なので優しく教えてくださるとうれしいです。 よろしくお願いします。

  • 現在のHPの一部にmovabletypeでページを作れますか?

    現在のHPの一部にmovabletypeでページを作れますか? ホームページを外注して作っていただいています。movabletypeで作っていただいたのですが、movabletypeでは、プログラムを組むのに手間がかかり、内容に制約が生じると言われました。 しかし、商品情報を更に載せたいので、Dreamweaverで作成してもらっているHPの 一部のページをにmovabletypeで作ってもらうと言うことは可能でしょうか? 担当者は勉強中で、時間がかかるために対応が難しいとのことでした。 講習会で、出来ると言うことを聞いた気がするのですが記憶が曖昧です。 そういうことは可能でしょうか?

  • 現在、自分でHPを作成しているのですが...

    現在、私はホームページビルダーを使ってHPを作成しているのですが、 そのHPを会員制にしたいと考えています。 しかし、HPビルダーには会員プログラムがなくて困っています。 どうすればIDとパスワードで会員を管理できるのでしょうか? 何かフリーのソフトやプログラムがあれば、ぜひとも教えてください(>‗<)皆さん大変お忙しいかと思いますが、どうかよろしくお願いいたします。

  • ページ数が20PほどのHPを作っているのですが。

    phpの初心者です。よろしくお願いします。 現在ページ数が20ページほどのホームページを作っているのですが、その構成で少し悩んでいます。 20ページ分のソースを一つのプログラムソースで作り始めたのですが、そのプログラムソースがかなり膨大な量になってしまいそうです。 一応、個々のページのhtmlの部分で共通するところはクラスかファンクションにしてまとめてあとでincludeするつもりです また、テキストの部分も将来的に変更するかもしれないのでデータベースに入れようと思っています。 掲示板とメールフォームと管理用の画面については別にプログラムソースを書くつもりです。 質問は、普通は一つのプログラムソースでどのくらいの量でまとめるものなのかと、長くなってしまったコードだと、読み込むのに遅くなったりしないのかということです。 また、簡潔な構成をするためのポイントなどがありましたら、教えていただければと思います。

    • ベストアンサー
    • PHP
  • 色々なHPのメモ帳を見ると・・・

    こんばんは。 まだまだ初心者な私ですが、 自分のHPを作って見ようと思い基礎的な事(HTML等)の勉強をしています。 いろいろな方のHPを見て参考にしようと思い、 HPを開いた状態で右クリック→ソースの表示で、そのHPのメモ帳が開きHTMLの文章が見れますよね? ただ、どういう訳かそのHTMLの文章のカタカナの部分が一部のHPでは文字化けを起こしてしまうんです(ヤフーのトップページ等)。 これは、どうしてなんでしょうか?

  • プログラムのソースを公開しているHP

    現在のユリウス通日や惑星の位置などの、 プログラムのソースを公開しているHP教えてください。 出来れば Javascriptがいいです。

  • HPで閉じるにしたら、別ウインドウを開く設定

    何時もお世話になります。 現在HPを作っています。色々な本を調べてみたのですが、方法がわかりません。 自分のHPを閉じた時に、別のウインドウを開く設定にしたいのですが、どのようにすれば、出来るのでしょうか? ご存知の方がいらっしゃったら、教えてください。 HPなどで紹介されているページがあれば、 そこも教えていただけると、とても、嬉しいです。 何時も、教えていただいてばかりで申し訳ないですが、 もう直ぐ完成しそうなので、とても、楽しく作っています。 お手数だと思いますが、よろしくお願いします。

  • HPのソースをそのまま貼り付けたとき、そのHP通りにならないのはなぜでしょうか?

    htmlでホームページを作りたいのですが、最初から自分ですべて作り上げるのは無理だと思ったので、あるHPを参考に作ることにしました。 そこで、「そのHPのソースを表示する→それをコピーして貼り付ける→貼り付けたソースをいじって自分のHPにする。」 という手順で作ろうと思ったのですが、ソースからコピーしたものを自分のHP上で表示しても、そのHP通りになりません。 詳しく言うと、文字などはそれ通りになっているものの、枠や線などといったHPを形作っている部分が表示されないのです。 なぜでしょうか。解決方法をご存知の方がいらっしゃいましたら教えて下さい! それと、上記のようなHPの作り方をして問題ないでしょうか。 内容や写真などは全く別のものにしますし、テンプレートとして使用するつもりもございません(あくまで参考にしたいだけなのですが…)。