- - PR -
ローカルIPを調べる
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-16 17:08
おせわになります.
ルータを経由してWANでインタネットを閲覧しているときに http://checkip.dyndns.org/ を見つけました. LANのIPが表示されるのですが、どのような仕組みなのでしょうか? 通常、グローバルIPが表示されると思うのですが.... | ||||||||||||||||
|
投稿日時: 2005-02-17 16:09
HTTPプロトコルを使ってブラウザがWebサーバと通信する際、
端末そのもののIPアドレスなどもWebサーバに教えてしまいます。 (これを伝えないのが匿名串) 通信をするためのIPアドレスはルータによって変換されても、 HTTPプロトコルで通信をしている内容は書き換えません。 Webサーバが取得したこれらの情報は、環境変数という形で、 CGIプログラムから簡単に取得できるように提供されます。 取得方法が知りたい場合は、CGIの作り方を紹介しているページを 検索すれば、たくさんありますよん。 | ||||||||||||||||
|
投稿日時: 2005-02-18 02:13
「LANのIP」というのは、プライベートIPアドレスのことですか? インターネット上のWebサイトに設置されたCGIにて、閲覧者のプライベートIPアドレスを取得することはできません。取得できる情報は、変換後のグローバルIPアドレスのみとなります。 例外的に、WebブラウザがプライベートIPアドレスの情報をペイロード内に付記して送信すれば取得可能です。しかしながら、ユーザに無断でこのような動作をするWebブラウザというのは聞いたことがありません。 #もしかすると、ActiveXなどを使えば実現できるのかもしれません。このあたりは識者の方にお任せします。
IP Masquerade環境下でアクセスしてみましたが、普通にグローバルIPアドレスが表示されました。 | ||||||||||||||||
|
投稿日時: 2005-02-18 02:34
グローバルIPアドレスを利用した場合、そのアドレスがIPレイヤの送信元IPアドレスとしてWebサーバに伝わります。これを避けたければ、ほげやんのおっしゃるとおり、プロキシサーバの利用が有効です。 ですが、プライベートIPアドレスを利用した場合はやや異なります。 端末からは、IPレイヤの送信元IPアドレスとしては、端末のプライベートIPアドレスが送出されます。 しかし、途中経路のIP Masqueradeルータによって、この情報はグローバルIPアドレスへと変換され、WebサーバにプライベートIPアドレスが伝わることはありません。
そのとおりで、HTTPプロトコルにて送信元IPアドレスが送信されれば、Webサーバに伝わってしまいます。 もし、Webブラウザに妙なプログラムが仕込まれていて、そのプログラムが端末のプライベートIPアドレスを取得してWebサーバに送信すれば、伝わってしまいます。
環境変数として取得可能なのは、グローバルIPアドレスとなります。 [ メッセージ編集済み 編集者: きつね 編集日時 2005-02-18 02:37 ] | ||||||||||||||||
|
投稿日時: 2005-02-18 10:22
はじめましてjzpapaと申します。
いつもROMですが興味のある話題でしたので投稿いたしました。
PROXYを利用した場合、
のように自分のPCのローカルアドレスとPROXYのローカルアドレスが表示され、 PROXYを利用しない場合、
のようにグローバルアドレスが表示されます。 私の拙い知識では
と思っておりましたので不思議でなりません。 この仕組みのわかる方がいらっしゃいましたら ご教示のほどよろしくお願いします。 当方が確認に使用したPC環境 WindowsXP SP2 IE6.0 SP2 IEのインターネットオプション設定では、 セキュリティータブのインターネットゾーンは規定になっています。 [ メッセージ編集済み 編集者: jzpapa 編集日時 2005-02-18 10:23 ] | ||||||||||||||||
|
投稿日時: 2005-02-18 10:50
こんにちは。
PROXYの設定によっては、使用者のIPアドレス(プライベートアドレス)を情報として付加することが可能だからです。 http://www.jiten.com/dicmi/docs/k6/15242.htm | ||||||||||||||||
|
投稿日時: 2005-02-18 11:42
なるほど、確かに、 「プロキシサーバがプライベートIPアドレスセグメント内に設置されている」かつ 「プロキシサーバがHTTP_X_FORWARDED_FOR等を付加する設定になっている」の2条件が満たされると、CGI側で環境変数としてユーザのプライベートIPアドレスを取得可能ですね。失礼しました。 かなり適応条件が限定され、確実にユーザのプライベートIPアドレスを取得したい場合には使えない手法ではありますが…。 [ メッセージ編集済み 編集者: きつね 編集日時 2005-02-18 11:44 ] | ||||||||||||||||
|
投稿日時: 2005-02-18 15:11
こんにちは。
↑知りませんでした。 もっとキッチリと勉強しようと思います。 ご教示いただきありがとうございました。 |