dポイントプレゼントキャンペーン実施中!

社外からのアクセスかどうか判断したい。

社内に設置したサーバに対し
社内からのアクセスの場合はA機能
社外からのアクセスの場合はB機能 と
接続元によってシステムで使える機能の切り分けを行いたいのですが、
社内・社外からのアクセスであるとシステム上で判断するためにはどうすればよいでしょうか?

グローバルIPを取得すればよい…かと思いましたが
グローバルIPの取得の方法も分からず…

ご意見よろしくお願いします。

言語:C#.net/.NetFramework2.0

A 回答 (3件)

IP取得、Lchan0211さんの回答のようにREMOTE_ADDRの取得でできます。

取得したIPがプライベートのレンジかどうかを評価すれば良いですね。

<プライベートIP>
http://yougo.ascii.jp/caltar/%E3%83%97%E3%83%A9% …

また、基本的にありえないですがマルチキャストアドレスの場合はエラーにするとか。。

<マルチキャストアドレス>
http://www.infraexpert.com/study/multicast2.htm

さらに注意点としては、IPv6への対応は近々必要になると思いますので、調べておいた方が先々のために良いかと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
注意点についてもご助言頂き、ありがとうございます。
参考にさせて頂きます。

お礼日時:2010/01/18 10:14

接続元のIPアドレスは、ASP.net C#の場合、


ServerVariables["REMOTE_ADDR"]
で取得できます。

(参考)
http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet0 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考にさせて頂きます。

お礼日時:2010/01/18 10:13

接続元のIPアドレスによって振る舞いを変えるのが一般的だと思います。


社内の計算機が使っているIPアドレスは調べるところを調べたら分かりそうな気がするので、社内のIPアドレスでない場合はすべて社外と判定するとするとよいでしょう。

もし、リバースプロキシなどを使っている場合でも、リバースプロキシで設定すればヘッダなどで接続元の情報を送るようにできると思います。あるいは、特定のリバースプロキシを使うことを理由に社外からのアクセスと判断できるかもしれません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考にさせて頂きます。

お礼日時:2010/01/18 10:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!