- PR -

ローカルIPを調べる

投稿者投稿内容
Zero
常連さん
会議室デビュー日: 2003/06/19
投稿数: 35
投稿日時: 2005-02-16 17:08
おせわになります.
ルータを経由してWANでインタネットを閲覧しているときに
http://checkip.dyndns.org/
を見つけました.
LANのIPが表示されるのですが、どのような仕組みなのでしょうか?
通常、グローバルIPが表示されると思うのですが....
ほげやん
会議室デビュー日: 2005/02/17
投稿数: 15
お住まい・勤務地: 関西地方
投稿日時: 2005-02-17 16:09
HTTPプロトコルを使ってブラウザがWebサーバと通信する際、
端末そのもののIPアドレスなどもWebサーバに教えてしまいます。
(これを伝えないのが匿名串)

通信をするためのIPアドレスはルータによって変換されても、
HTTPプロトコルで通信をしている内容は書き換えません。

Webサーバが取得したこれらの情報は、環境変数という形で、
CGIプログラムから簡単に取得できるように提供されます。

取得方法が知りたい場合は、CGIの作り方を紹介しているページを
検索すれば、たくさんありますよん。
きつね
常連さん
会議室デビュー日: 2004/01/02
投稿数: 37
お住まい・勤務地: 西新宿
投稿日時: 2005-02-18 02:13
引用:

LANのIPが表示されるのですが、どのような仕組みなのでしょうか?
通常、グローバルIPが表示されると思うのですが....



「LANのIP」というのは、プライベートIPアドレスのことですか?
インターネット上のWebサイトに設置されたCGIにて、閲覧者のプライベートIPアドレスを取得することはできません。取得できる情報は、変換後のグローバルIPアドレスのみとなります。

例外的に、WebブラウザがプライベートIPアドレスの情報をペイロード内に付記して送信すれば取得可能です。しかしながら、ユーザに無断でこのような動作をするWebブラウザというのは聞いたことがありません。
#もしかすると、ActiveXなどを使えば実現できるのかもしれません。このあたりは識者の方にお任せします。

引用:

http://checkip.dyndns.org/



IP Masquerade環境下でアクセスしてみましたが、普通にグローバルIPアドレスが表示されました。
きつね
常連さん
会議室デビュー日: 2004/01/02
投稿数: 37
お住まい・勤務地: 西新宿
投稿日時: 2005-02-18 02:34
引用:

HTTPプロトコルを使ってブラウザがWebサーバと通信する際、
端末そのもののIPアドレスなどもWebサーバに教えてしまいます。
(これを伝えないのが匿名串)



グローバルIPアドレスを利用した場合、そのアドレスがIPレイヤの送信元IPアドレスとしてWebサーバに伝わります。これを避けたければ、ほげやんのおっしゃるとおり、プロキシサーバの利用が有効です。

ですが、プライベートIPアドレスを利用した場合はやや異なります。
端末からは、IPレイヤの送信元IPアドレスとしては、端末のプライベートIPアドレスが送出されます。
しかし、途中経路のIP Masqueradeルータによって、この情報はグローバルIPアドレスへと変換され、WebサーバにプライベートIPアドレスが伝わることはありません。


引用:

通信をするためのIPアドレスはルータによって変換されても、
HTTPプロトコルで通信をしている内容は書き換えません。



そのとおりで、HTTPプロトコルにて送信元IPアドレスが送信されれば、Webサーバに伝わってしまいます。
もし、Webブラウザに妙なプログラムが仕込まれていて、そのプログラムが端末のプライベートIPアドレスを取得してWebサーバに送信すれば、伝わってしまいます。

引用:

Webサーバが取得したこれらの情報は、環境変数という形で、
CGIプログラムから簡単に取得できるように提供されます。



環境変数として取得可能なのは、グローバルIPアドレスとなります。

[ メッセージ編集済み 編集者: きつね 編集日時 2005-02-18 02:37 ]
jzpapa
会議室デビュー日: 2001/10/15
投稿数: 4
投稿日時: 2005-02-18 10:22
はじめましてjzpapaと申します。
いつもROMですが興味のある話題でしたので投稿いたしました。

引用:

http://checkip.dyndns.org/



PROXYを利用した場合、
引用:

Current IP Address: 10.x.x.x, 10.x.x.xx


のように自分のPCのローカルアドレスとPROXYのローカルアドレスが表示され、

PROXYを利用しない場合、
引用:

Current IP Address: 202.xxx.xxx.xxx


のようにグローバルアドレスが表示されます。

私の拙い知識では
引用:

環境変数として取得可能なのは、グローバルIPアドレスとなります。


と思っておりましたので不思議でなりません。

この仕組みのわかる方がいらっしゃいましたら
ご教示のほどよろしくお願いします。

当方が確認に使用したPC環境
WindowsXP SP2
IE6.0 SP2
IEのインターネットオプション設定では、
セキュリティータブのインターネットゾーンは規定になっています。

[ メッセージ編集済み 編集者: jzpapa 編集日時 2005-02-18 10:23 ]
okutin
ベテラン
会議室デビュー日: 2003/12/11
投稿数: 98
お住まい・勤務地: 広島
投稿日時: 2005-02-18 10:50
こんにちは。

引用:

jzpapaさんの書き込み (2005-02-18 10:22) より:

この仕組みのわかる方がいらっしゃいましたら
ご教示のほどよろしくお願いします。



PROXYの設定によっては、使用者のIPアドレス(プライベートアドレス)を情報として付加することが可能だからです。

http://www.jiten.com/dicmi/docs/k6/15242.htm
きつね
常連さん
会議室デビュー日: 2004/01/02
投稿数: 37
お住まい・勤務地: 西新宿
投稿日時: 2005-02-18 11:42
引用:

PROXYの設定によっては、使用者のIPアドレス(プライベートアドレス)を情報として付加することが可能だからです。



なるほど、確かに、
「プロキシサーバがプライベートIPアドレスセグメント内に設置されている」かつ
「プロキシサーバがHTTP_X_FORWARDED_FOR等を付加する設定になっている」の2条件が満たされると、CGI側で環境変数としてユーザのプライベートIPアドレスを取得可能ですね。失礼しました。

かなり適応条件が限定され、確実にユーザのプライベートIPアドレスを取得したい場合には使えない手法ではありますが…。

[ メッセージ編集済み 編集者: きつね 編集日時 2005-02-18 11:44 ]
jzpapa
会議室デビュー日: 2001/10/15
投稿数: 4
投稿日時: 2005-02-18 15:11
こんにちは。

引用:

okutinさんの書き込み (2005-02-18 10:22) より:

PROXYの設定によっては、使用者のIPアドレス(プライベートアドレス)を情報として付加することが可能だからです。



↑知りませんでした。
もっとキッチリと勉強しようと思います。
ご教示いただきありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)