• 締切済み

IPアドレスについて

あるサイトからリンクしてきた人だけに見せたいページがあります。 しかしリンク元のサイトはリファラーをだしておらず、IPアドレスしかわかりません。 その場合、リンク元のIPアドレスでアクセスを制限させるというCGIは作成可能でしょうか。 ベーシック認証は利用できないサーバーです。 よろしくお願いいたします。

みんなの回答

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.3

はじめましてralf124cと申します。 CGIでは環境変数を参照することでリファラ情報は取得可能ですが、HTTPにおいてリファラー情報は必須情報ではありません。 個人情報としてみる向きもあり、セキュリティソフト(例:NortonSecurity)などをエンドユーザーがインストールしているとデフォルトでこの情報はブロックされてしまいますし、Netscapeなどでは設定でブロックすることもできます。 よってリファラ情報を当てにしたページ作りは避けることをおすすめします。どうしてもそういう特殊な環境の方を除外するということが前提であれば環境変数を参照して判定文で振り分ければよいと思います。 perlでは foreach(sort keys %ENV){ print "$_: $ENV{$_}\n"; } でリファラを含む一部の環境変数を参照できます。

全文を見る
すると、全ての回答が全文表示されます。
  • is907
  • ベストアンサー率55% (5/9)
回答No.2

リファラーはリンク元のサイトが出すものではなく、一人一人のユーザーが出すものです。ユーザーの IP アドレスだけからでは、どこからリンクしてきたのかは分かりません。 要求する動作がいまいち掴めないのですが、自分のサイト内から飛んできた人にしか見せたくないというのであれば、リファラーをチェックするか、リンク元として許可するページで Cookie を渡して、目的のページでそれをチェックしてあげればいいと思います。 No.1 の方の回答は単純に、IP アドレスによるアクセス制限ですね。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

で、アクセス元のIPアドレスが分かるので、これをもとに制限をかけるということはできます。 私はファイルでアクセス禁止のIPアドレスのリストを登録しておき、このファイルを読み込ませて、一致した場合にはアクセスを禁止するという制御をしています。こんなイメージです。 $denyに禁止IPアドレスリストが空白をデリミタにして入っています。 $addr = $ENV{'REMOTE_ADDR'}; foreach (split(/\s+/, $deny)) { if (/^#/) { next; } s/\./\\\./g; # . をエスケープする s/\*/\.\*/g; # * をエスケープする s/\?/\.\?/g; # ? をエスケープする if ($addr =~ /$_/i) { die "Accessed by a prohibited host"; } } }

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 特定ページからのリンクのみアクセス可能にしたい

    Webサイトのある特定のページのアクセス制限について、次の2点を両立させたいのです。 1.PCでのアクセスの場合は、別の特定のページからのリンクのみアクセスOK 2.携帯でのアクセスの場合は、無条件でアクセスOK リファラーを利用して、.htaccessやcgiでアクセス制限すると、1は実現できても、携帯はリファラーを吐き出さないので、はじかれてしまい、2が実現できず、ジレンマに陥っています。 良い方法はないでしょうか?

  • IPアドレスの重複について

    1日数十万以上のアクセスのある複数のサイトを運営しています。全てのサイトのCGIログは一括で管理していて、同じIPアドレスからのCGIへの短時間(数秒以内)の連続送信を制限しています。 ところが、登録者名とパソコン環境が異なるサイトAにアクセスしている人と、サイトBにアクセスしている人がいるのですが、何故かIPアドレスだけが毎回重複しています。 この為、二人がほぼ同時に書き込んだ場合に連続送信制限に引っかかることがあります。 二人のホスト名は***.cty-net.ne.jpで、プロバイダは「CTY ケーブルテレビ」です。 この二人のIPは初めてアクセスしてきた当初(数ヶ月以上前)から変化していません。たまたま同じ場所のインターネットカフェ等の施設からアクセスしてきているのでしょうか? それとも、今までは常識的に考えてIPアドレスは一人一つと考えていましたが、もしかしてケーブルテレビ等の場合は同じIPを複数のユーザーで使いまわすことが可能なのでしょうか?有り得ないとは思いましたが一応の可能性を考えて質問させていただきます。

  • IPアドレスの調べ方

    初心者なのですが、教えて下さい。 契約しているサーバーのHPスペースに掲示板を設けてあります。(レンタルではなく自作(作っていただいた)です) そこに特定の人が書き込みをできないように設定する為にIPを調べたいのですが・・・。 log.cgiにはアクセスサーバー名は出てくるものの、IPアドレスは出てきません。 自分のPCのIPアドレスは調べられますが、書き込みした人のIPアドレスを調べる方法はあるのでしょうか。 もしかしたらとっても簡単な事なのかもしれませんが・・・。 教えて下さい。

  • IPアドレス拒否?

    このページを表示する権限がありません 使用する Web ブラウザのインターネット アドレスから、このディレクトリまたはページを表示する権限がありません。 -------------------------------------------------------------------------------- このディレクトリまたはページを表示できるはずである場合は、 www.lineageonline.jp ホーム ページに記載されている電子メールのアドレスまたは電話番号を使用して、Web サイトの管理者に問い合わせてください。 HTTP 403.6 - アクセスは許可されていません: IP アドレスが拒否されました。 インターネット インフォメーション サービス -------------------------------------------------------------------------------- 技術情報 (サポート担当者用) 背景 サイトへのアクセスを禁止している IP アドレスの一覧がサーバーに存在する場合に、一覧の IP アドレスを使ってアクセスすると、このエラーが発生します。 詳細 Microsoft Support とでてゲームの課金が出来ません。 どうしたらいいでしょうか? 昨日までは普通に課金手続きのところまでは いけていたのですが・・・・

  • $_SERVER['HTTP_REFERER'] について

    $_SERVER['HTTP_REFERER'] について質問があります。 この変数は、移動元のページのアドレスが入ると思うのですが、 Flashエレメントのボタンなどで移動すると、何も入りません。 アクセス制限に利用したいと思っているのですが、 何も入らないととても困ります。 何か良い方法はないものでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • ソースアドレスはどうなるのか知りたい

    現在サーバーに2枚のLANボードがささっており、それぞれにIPアドレスを設定(仮にAとBとします)しています。 IIS6.0とアプリ(ColdFusionMX6.0)を使って認証サーバにアクセスするページを作った際、AとBどっちのIPがソースアドレスになるのでしょうか。 認証サーバーにこちらのIPを伝えなければならないのですが、どっちのIPで接続しにいっているのか分からないのです。 ちなみに、IISで仮想フォルダを作ってその配下に認証サーバーにアクセスするプログラムは置いています。 また、IISのIPアドレスの設定の部分は「未使用のIPアドレスを使用」という設定にしています。

  • ip制限のベーシック認証を用いた場合のクローラーさんについて

    携帯サイトを作成しております。 今回、下記のサイトを参考にし、ipアドレスを用いて 携帯からのアクセスの場合はベーシック認証を行なわず パソコンからのアクセスの場合はベーシック認証を行なうように しようと思っております。 http://www.skytown.ne.jp/support/htaccess/ht-ip-id.html ただ、ひとつ気になったことがあります。 携帯のIPアドレスからはベーシック認証を行なわず それ以外のIPアドレスからはベーシック認証を行なうと クローラーさんを確実に弾いてしまいますよね? クローラーさんのIPアドレスを1コ1コ調べてIP制限を 解除する方法も考えたのですが、カナリの量があるため 実用的ではないですよね。 そこで、1つ考えてみました。 パソコンをはじめ、クローラーさんが来たときに ベーシック認証が行なわれ、認証に失敗したときの 戻り先URLを作成し、そこにサイト名とサイトの概要を meta要素に書いておくというものです。 あとは、body内にも「携帯専用」とQRコードを載せておこうと 考えております。 そして、携帯から認証に失敗したときの戻り先URLに 直接アクセスがあった場合、携帯のサイトにリダイレクト させようというものです。 けれど、これはクローラーさんが認証に失敗したら 戻り先URLに飛ばされ、飛ばされたURLの情報をクロール することが前提となってきます。 クローラーさんについて、あまりくわしくないので 上記の方法ではたして戻り先URLがクロールされ 携帯用の検索エンジンに登録されるかが不安になったため 質問いたしました。 ぜひ、ご教授のほどよろしくお願いいたします。

  • 携帯サイトでユーザー登録した人だけアクセスできるページを作りたいです。

    携帯サイトでユーザー登録した人だけアクセスできるページを作りたいです。 どのカテゴリに投稿して良いのか悩みました。 携帯サイトの作成、アクセス制限の方法についてです。 私のスキルではCGIや.htaccessでパスワード認証をすることはできます。 ですが、パスワードなどを求めなくてもあらかじめユーザー登録をしておいて普通にアクセスできる方法はないでしょうか? もしくは最初だけパスワードを入力してアクセスしたら次回以降はパスワードが不要になる「簡単アクセス」のような機能でもよいです。 携帯電話ではアクセスするたびにIPアドレスがかわるので、IPアドレスによるアクセス制限は意味がないですし、携帯の機種ごとに個体識別番号(?)でアクセス制限ができるみたいだとわかったのですが、それでは同じ機種の人ならアクセスできてしまうので不可です。 個人のサイトではこういう機能は不可能なのでしょうか。 サーバーはxreaを使用しています。

  • IPアドレスについて教えてください

    こんにちわ。IPアドレスについて教えてください!   ↓ HPにあるボタンをおすと、リンクしてあるページにとびますよね。 例えばhttp://oshiete.goo.ne.jp/jsp/oshiete_top.jspのHPより「趣味」のボタンを押すと、http://oshiete.goo.ne.jp/jsp/oshiete_search.jsp?c=212&tag=212のように。この場合、異なったIPアドレスを使っているわけではないのでしょうか?もし同じIPアドレスを使っているというのであれば、どういう仕組みでリンクされているページを見ることが出来るのでしょうか? 教えてください!!!

  • グローバルIPアドレスの取得。

    自宅サーバで、CGIで作成したホームページを開設しています。 回線は光で、回線終端装置(ルータなどが含まれる)の不具合等で、終端装置をリセットすると、グローバルIPアドレスが、変わってしまい、CGIを何箇所も書き換えなければなりません。 グローバルIPをCGIで取得して、CGIで、IPを自動的に変更したいのですが、IPの取得はどうしたらできますか。 IPの取得部分のCGIプログラムが欲しいのですが。 よろしくお願いします。

    • ベストアンサー
    • CGI
このQ&Aのポイント
  • 純正トナーを交換しても、表示が消えないトラブルについて相談したいです。
  • OSはWindows10で、有線LAN接続しています。関連ソフトはBRA admin professional 4です。
  • 使用している電話回線はひかり回線です。トラブルの原因や解決策をお知りになりたいです。
回答を見る

専門家に質問してみよう