• 締切済み

phpでの帯域制御、ダウンロード数制御

phpを利用したWebサイトで ファイルをダウンロードさせる際に 転送速度を制御する帯域制御や、 同時にダウンロードする数を制御することなどは できますでしょうか。 php以外のスクリプトでも方法があれば参考にしたいと思います。 php初心者でほとんどわかってませんが、 皆様、よろしくお願いいたします!

  • PHP
  • 回答数6
  • ありがとう数8

みんなの回答

  • kikanbo
  • ベストアンサー率31% (44/139)
回答No.6

SESSIONという手もありますよ。

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.5

PHPでファイルサイズからダウンロード時間を予測するか JavaScriptでダウンロード完了を検知するか、でしょうか・・

matsu2007
質問者

お礼

回答ありがとうございます! なるほど、JavaScriptを使って ウィンドウが閉じられるのを検地して、データを受信。 データを元に許可の設定に変える。 といった感じでしょうか。 JavaScriptもまったくの素人なので 調べてみますww ヒント頂けると嬉しいです! ありがとうございます

  • kikanbo
  • ベストアンサー率31% (44/139)
回答No.4

クッキーではなくてもPHPでファイル書き出しでログファイルを保存 保存されたログファイルから一定時間前にどれだけのダウンロードがあったかを調べて、規定以上のダウンロード数であれば、「またあとで」、規定以下ならダウンロードを許可 そのときに同時に古いログを消しておくとか? あ、1人のアクセスに対してですか??全体のアクセスに関してであれば、上の方法 1人の人がダウンロードできる数を制限するなら上の方法にIPなども一緒に記録しておいて計測とか、簡単な方法ならcookie制限 ただしcookieは使えない人もいますから… ログをとったほうがほかにもいろいろ使えますよ。 わからなければ、もう再度質問をしてください。 ユーザーのIPは$_SERVER['REMOTE_ADDR']です。

matsu2007
質問者

お礼

回答ありがとうございます! 説明不足ですいません、一人一人のダウンロードに制限をかけたいのです。 同時にダウンロードできる数をいくつと設定したい感じです。 クッキーで制御する簡単なソースは作ってみました。 クッキーの有効期間だけで制御するものですが、クッキー無効だと意味なさそうです。。 ユーザーのログを取る方法を検討してみたいと思います。 ログを取ってどのように振舞えばいいかはまだ思いついてませんが(笑 ダウンロードの終了を検地できればいいのですけど、 方法がよくわからないんです。 いろいろありがとうございます!よろしくお願いします!!

  • tao_0077
  • ベストアンサー率48% (33/68)
回答No.3

php でファイルを読み込んでそれをクライアント側に読ませる、と考えると、 1 適当な容量(たとえば 10KB)読み込む 2 クライアント側に出力 3 特定時間ウェイト 4 1 に戻る とかでしょうか。きっちりした数字では制限できませんが、ウェイト時間を調節すれば目的は果たせそう。 接続数制限に関しては、1 さんの言うとおりログを作るか、あるいは大人数になる可能性がある場合は、接続情報をデータベースに持ったほうが楽かもしれません。

matsu2007
質問者

お礼

回答ありがとうございます。 ウェイト調整の方法、参考にさせて頂きたいと思います。ありがとうございます。 接続数制限ですが、 全体にかけるのではなく、利用者一人づつに 同時にダウンロードできるのはいくつまで、 といったようにできればと考えています。 ただ、ダウンロードの終了をどのようにサイト側で検地すればいいのか。。 そこが悩んでいます。。

  • tao_0077
  • ベストアンサー率48% (33/68)
回答No.2

実際に転送を行っているのは Web サーバなので、そちらの設定になるのではないでしょうか。>参考 URL ただ、自前のサーバでないとここら辺の設定はきついかも。

参考URL:
http://www.atmarkit.co.jp/flinux/rensai/apache2_08/apache08c.html
matsu2007
質問者

お礼

回答ありがとうございます。 レンタルサーバなので、アパッチでの作業が難しそうなんです。。

  • kikanbo
  • ベストアンサー率31% (44/139)
回答No.1

簡単な方法だとダウンロードされるごとに時間入りのログを作る 次にダウンロードされたときには一定時間前にどれだけダウンロードされたかを調べて、数を制限する

matsu2007
質問者

お礼

回答ありがとうございます! クッキーなどを使って、 最初のダウンロード時に時間情報などをクッキーにセット、 続けてのダウンロードでも、一定時間経過していないため メッセージを出してダウンロードを抑制。 時間が経過してOKになったら次のダウンロードを許可する。 といった感じでよろしいでしょうか。 参考のソースなどを教えて頂けると大変嬉しいです! よろしくお願いします

関連するQ&A

  • レンタルサーバーの帯域と転送量って?

    ファイルのダウンロードをメインとするホームページを新たに開設しようと考えています。 ファイル容量は100Mb程度、月間ダウンロード予定数は1,000件程度です。 レンタルサーバーを探しているのですが、帯域と転送量の意味がよく分からないので、ご存知の方がいれば、教えてもらえますでしょうか? ●帯域について 同時に何人がアクセス可能か、という意味かと思いますが、正しいでしょうか? 月間ダウンロード数を1,000件と想定しているので、1日あたりでは30件程度、したがって、同時アクセス数は10件もあれば十分だと考えています。 この場合、帯域保証は何Mbps程度必要でしょうか。もしくは、帯域保証なしでも問題ないのでしょうか? ●転送量について ダウンロードの合計量と理解していますが、正しいでしょうか? 月間で100Mb×1,000=100Gbの転送量が必要ということかと思っているのですが、正しいでしょうか。 転送量無制限というところにすれば、気にしなくてもいいと思うのですが、大丈夫でしょうか。 ご存知の方、ぜひとも、アドバイスをお願いします。

  • 帯域制御のできるフリーソフト

    CATVの速度1Mプランに入っています。 IPフォンを利用するとき他のPCで動画など1Mの帯域を一杯一杯使うようなサイトを見ていると音飛びを起こしてしまいとても電話として利用できません。 そこで、パソコンに帯域制御(500bpsまでなど)するソフトを常駐させようと思います。 フリーソフトでこの様な用途に適した物があったら教えてください。

  • 周波数帯域

    無線LANのIEEE802.11bは2.4GHz/11Mbps、IEEE802.11aは5.2GHz/54Mbpsですよね。 この2.4GHz帯とか5.2GHz帯とか言う周波数帯域というのはどのようなものなのでしょう? 数字が高いと周波数(データ転送速度)も上がるのでか? そうなるとIEEE802.11gで2.4GHz/54Mbpsが実現出来た技術を使えば5.2GHz帯はもっと早くなるんですか? IEEE802.11n 100Mbps以上というのが出るらしいですが。

  • Webダウンローダーの機能として帯域幅の制御をしたいのですが、、、

    VB初心者です。 webを自動巡回して画像を収集するアプリケーションを作りたいと思いまして、まずは主要となる機能の解決手段を探しております。 複数のスレッドを用いてwebサイトを巡回しながら画像ファイルを探すアプリの予定なのですが、巡回に使用する帯域幅を監視する方法と接続が太くなりすぎないように指定した帯域幅を越えないよう制御する方法を探しております。 あちこちを探し回ってるのですが、糸口になるような方法がみつからず困っております。 どの方法が最適か?ということも知りたいですが、まずは、どんな選択肢や命令があるか?いろいろ読んでみてもなぜか見つかりません。 どうかご助言いただけませんでしょうか? よろしくお願いいたします。

  • レッツPHP!さんのダウンロードカウンタが動かない

    レッツPHP!さんのダウンロードカウンタが動きません。 http://php.s3.to/data/#dl ここのダウンロードカウンタが使いやすそうなので、 ダウンロードして、アップロードして パーミッションも変更したのですが いざ登録して、ダウンロードの管理画面を開くと Warning: Division by zero in /home/users/0/lolipop.jp-dp05146405/web/dl/dl.php on line 223 とエラーが出てしまいます。 パーミッションを変更したはずなのに、すぐに元に戻ってしまいますし… サーバーによっては使えないとあったのですが、そのせいでしょうか? ちなみに、サーバーはロリポップさんを利用しています。 初心者なので、dl.php?dl=[ファイルID]の設定方法も良くわかりません。 初心者的な質問で申し訳ありませんが、 どなたかご存知の方、教えていただけないでしょうか?

    • ベストアンサー
    • PHP
  • phpファイルが勝手にダウンロードされる

    仕事でホームページのリニューアル作業をしており、リニューアルに伴いサーバーも別のものに移動することになりました。その際に今までに使用していたメールフォームのphpファイルや.htaccessを新サーバーにアップしたのですが、そうするとメールフォームのあるページに移動すると、phpファイルが勝手にダウンロードされてしまいました。それどころか今までの正常に作動していた新サーバーにあるphpファイルも勝手にダウンロードされるようになってしまいました。 php 勝手 ダウンロードなどのキーワードで調べ、同じような内容の質問もあったのですが、 プログラムやWEBサーバー系のことはさっぱりわからなくてどうしていいのか途方にくれている状態です。 今まで使用していたメールフォームがxsrvという特殊なサーバーにあるということはわかっているのですが、どうすればいいのでしょうか。やはりサーバーやプログラム関係が触れないと修正は難しいのでしょうか。 原因の見つけ方等をご存知の方がおられましたら宜しくお願いいたします。 ※参考にしたサイト http://www.xserver.ne.jp/ http://okwave.jp/qa/q3518318.html

  • PHPでの最適なダウンロード方法

    PHPでのファイルのダウンロード方法を教えてください。 ・XOOPSなどのフレームワークを利用している際の最適なダウンロード方法 (テキスト情報を、ただ単にリダイレクトをするとXOOPSのヘッダなどのHTMLまで出力されてしまう。そうかと言って、ヘッダ読み込みの前にリダイレクトをしようとすると関数などが読み込まれていないため処理が動かない) いい知恵をいただけたらと思います。 よろしくお願いします。

    • 締切済み
    • PHP
  • Webプログラミングを勉強するにはCGI?それともPHP?

    将来をみこんで今からWebプログラミングを勉強しようかと思っています。 WebでみるようにCGIのスクリプトは大変すばらしいのですが多くのものが1~2つの動作を単体で行う物しか見たことがありません。それに変わってPHPは数が多くなるものの大規模で尚且つ機能性に優れたスクリプトを多く目にします。(Xoopsやウェブメールなど) そこで質問です。Webプログラミングを勉強するにはやはりCGIを先手にしたほうがいいのでしょうか?それともPHPにしたほうがいいのでしょうか?又、勉強するために大変参考になる本やサイトなどご存知の方がいましたらぜひ教えてください。 PS:ちなみに私はCGIやPHPに関して初心者です。設置や簡単な改造は出来ますが新規作成などは今までやったことがありません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • サーバに置かれているPHPスクリプトのダウンロード

    サーバに置かれているPHPスクリプトデータをダウンロードできるフリーのソフトウェアはありますか? 別件で、Gmail署名ジェネレータサービスの日本語版を作成したいと考えていますが、本家スクリプトを参考にオリジナル版を作成したいと考えています。 そこで、本家サイトをWebsiteExplorerで解析したところ、署名を作成するページと、そこから「gmail.php?user=」でデータを渡している「先」は画像でした。 もう少し、詳しく解析できるフリーソフトを教えて下さい。 (カテは異なると思いますが)画像に文字列データを埋め込む際、別で動かすPHPは必要がなく、サーバに置かれているPHP本体が生成して結果を返しているだけなんでしょうか?

  • ソケットで通信するデータの帯域制御方法

    ソケットでデータをやり取りするプログラムを、C言語で組んだのですが、今はとりあえず100バイトずつ送受信しています。 これを、指定された帯域を越えない範囲で、できるだけたくさんデータを送るようにしたいと考え、トラフィックシェーピングを実装したいのですが、どのようにすればいいのか、実装方法がわかりません。 (今はただ文字データをやり取りしているだけなのですが、これをファイル転送ができるものにしたいため。) どんなものでもいいので、参考になるサイトやサンプルソース等を定時いただければと思います。

専門家に質問してみよう