みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

IPアドレスがちがう!

プライベートなサイトの公開範囲を特定のIPアドレス(自分)だけにしようと.htaccessで

order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
allow from xxx.xxx.xxx.xxx
allow from xxx.xxx.xxx.xxx

というふうにしていたのですが、仕事場のPC(IPアドレス)だけ許可できません。
で調べてみると、「ipconfig/all」で得られたIPアドレスとPHPの「$_SERVER['REMOTE_ADDR']」で得られたIPアドレス(実際にサーバーにアクセスしてきたクライアント)が違うのです。

なでに(.ŏωŏ.)?

結局、「$_SERVER['REMOTE_ADDR']」で得られたIPアドレスで無事制御できましたが、原因は分からずじまいです。
どなたか原因がお分かりの方、ご教授の程お願い致します。

OS: WindowsXP SP3
仕事場のPCは無線LANで接続されています。

投稿日時 - 2011-08-13 13:55:10

QNo.6940283

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.9

[ANo.8] の補足に対する回答ね。

「tracertを実行しましたが、グローバルアドレスは得られませんでした。」

じゃぁ、社内は ICMP を許可して無いか、
ウェブブラウザが、プロキシーサーバ経由でアクセスしてるんじゃない?

投稿日時 - 2011-08-16 16:57:58

ANo.8

「で、ようはクライアント側でコマンドプロンプトなりでグローバルアドレスを調べるにはどうすればいいのかと言うことです。」

PHPの「$_SERVER['REMOTE_ADDR']」で調べるのが正解!


社内のルータが ICMP(※) を許可しているなら、コマンドプロンプトで

| C:>tracert 自分のサーバ

とすると、クライアント PC と自分のサーバの間のルータの IP アドレスがわかるよ!
会社のグローバル IP もリストされてるはず。

http://ja.wikipedia.org/wiki/Internet_Control_Message_Protocol
http://ja.wikipedia.org/wiki/Traceroute

投稿日時 - 2011-08-13 21:36:20

補足

tracertを実行しましたが、グローバルアドレスは得られませんでした。

投稿日時 - 2011-08-14 12:05:29

ANo.7

コマンドプロンプトでルーターのグローバルIPを表示する方法がないので、ルーターの管理画面で確認してください。

といっても、管理者じゃないので見れないということであれば、アクセス元のIPを表示するサイトで確認してはどうでしょうか。

http://www.cman.jp/network/support/go_access.cgi

ちなみに、職場のIPが動的IPだとフィルタリングしてもIPが変わるため定期的にチェックしないと機能しませんのでご注意を…

投稿日時 - 2011-08-13 20:08:59

お礼

了解です!
ありがとうございました!

投稿日時 - 2011-08-14 01:56:30

ANo.6

>ローカルにあるホスト単位でIP制限をするにはどうすればよいのでしょうか

ローカルのホスト(PC)は全て固定アドレスとする(アドレス自動所得しない)
(デフォルトゲートウェイやDNSを適切に設定しないとローカルのサブネット内でしか接続できません)

その上で、ルータの設定でIPアドレスごとに接続許可/不許可を設定する(通常は deny all、 allow 個別の許可アドレス で)

が IPアドレス個別設定は、担当者が丁寧に頻繁に管理しないと有名無実となり、勝手なアドレス設定が行われ、二重アドレスが発生します(deny で指定したのに、勝手にalow のアドレス変えられてしまう等)

投稿日時 - 2011-08-13 19:09:01

お礼

ルーターにそのような機能があるんですね!
いずれ読まなければとは思っていましたが、
ルーターの説明書をきちんと読んでみます(*‘ω‘ *)
ありがとうございました

投稿日時 - 2011-08-14 01:55:36

ANo.5

現在の環境では、職場のPCのIPを固定しても何も解決しません。

そもそも、ルーター配下のPCを特定し該当PCだけをフィルタリングして接続するには無理があります。通常はパスワードによる認証も必要と考えられます。

職場で利用している回線は固定IPでしょうか?もし固定IPの契約であればIPアドレスでのフィルタリングと合わせてパスワード認証を追加すれば実現できたかもしれません。

職場の回線が動的IPであれば大人しくIPアドレスによるフィルタリングは諦めて、職場のPCから自宅のPC(サーバー)を一度踏み台にしてローカルIPから利用する等の方法が現実的のように思います。
後はVPNサーバーを利用するなどの方法で接続するするなどでしょうか…

結局IPによるフィルタリングだけでは限界があります。

MACアドレスによるフィルタリングを追加しても厳しいでしょう。
大変厳しいようですがネットワークに対する基本的な知識が質問者様には足りない気がします。もう少し勉強または別の方法を考えて再チャレンジしてみるのはどうでしょうか。

投稿日時 - 2011-08-13 18:44:51

補足

現状、ルーターを使用してネットに接続している状況下では「ipconfig/all」がプライベートアドレスしか表示してくれない。
この結果、.htaccessではプライベートアドレスを指定していたため、職場のPCでアクセスが許可されなかったというところまでは、サーバーを利用してグローバルアドレスを調べた時すでに憶測はたっています。

で、ようはクライアント側でコマンドプロンプトなりでグローバルアドレスを調べるにはどうすればいいのかと言うことです。

ちなみに、IPによるアクセス制限はをしているのは、制限自体が一時的でよいからです。
本当に必要ならフォーム認証なり実装します(.ŏωŏ.)

投稿日時 - 2011-08-13 19:38:12

ANo.4

IPアドレスにはプライベートIPアドレスとグローバルIPアドレスがあります。
グローバルIPアドレスはインターネットで使用されるIPアドレスで世界中で一意のものです。
プライベートIPアドレスは閉鎖されたネットワーク(LAN)内で使用するIPアドレスです。
電話に例えるとグローバルIPアドレスは電話番号、プライベートIPアドレスは内線番号のようなものです。
無線LANを使用ということなのでインターネットへの出口にはルーターが存在しているはずです、グローバルIPアドレスはこのルーターに割り当てられているのが通常でルーターより下流(貴方のPCなど)ではプライベートIPアドレスが使用されます。
このグローバル、プライベートIPアドレスの変換と交通整理などををするのがルーター役割です。
インターネットへはルーターに割り当てらたグローバルIPアドレスでアクセスしている事になります。

ルーターより下流にあるPCは全て同じグローバルIPアドレスでインターネットに接続していることになります。
そのプライベートなサイトがインターネット上にあるサーバーならIPアドレスで制限してもルーターの下流ある全てのPCからはアクセス可能になります。

投稿日時 - 2011-08-13 16:00:58

補足

ご丁寧にありがとうございます。

ではローカルにあるホスト単位でIP制限をするにはどうすればよいのでしょうか。
プライベートアドレスを固定するということでしょうか?

投稿日時 - 2011-08-13 17:19:17

ANo.3

ANo.2
誤:サーバとクラインと
正:サーバとクライアント

投稿日時 - 2011-08-13 15:03:02

ANo.2

サーバとクラインとは全て同じLAN内に存在するのでしょうか?
異なるLANからの場合、その経路にNATによるアドレス変換が存在していませんか?

投稿日時 - 2011-08-13 15:01:41

補足

いえ、サーバーとクライアントは同じLAN内ではありません。
そうですね、ルーター経由なのでプライベートIPは自動的にグローバルIPアドレスに変換されてはいるとおもいますが、ルーター以降の経路にはないとおもいます。

投稿日時 - 2011-08-13 17:02:08

ANo.1

職場のローカルIPを許可設定してるんでしょうか?ルーター経由であればグローバルIPがアクセス元になると思うのですが…

ipconfig/allだと表示されるのはローカルIPですよね。別のIPがアクセス元と表示されたそうですがルーターが取得しているグローバルIPとも違うのでしょうか。

投稿日時 - 2011-08-13 14:27:57

補足

「ipconfig/all」はルーターを経由している場合、プライベートIPアドレスしか表示してくれないんですね(´・ω・`)

単にグローバルIPアドレスを調べるだけなら、そういったサイトや個人利用しているサーバにアクセスして、そのHTTPの情報を参照すれば分かるのですが、クライアント側でグローバルIPアドレスを調べる方法がわかりません。

投稿日時 - 2011-08-13 16:34:16

あなたにオススメの質問