• ベストアンサー

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

社外からのアクセスかどうか判断したい。 社内に設置したサーバに対し 社内からのアクセスの場合はA機能 社外からのアクセスの場合はB機能 と 接続元によってシステムで使える機能の切り分けを行いたいのですが、 社内・社外からのアクセスであるとシステム上で判断するためにはどうすればよいでしょうか? グローバルIPを取得すればよい…かと思いましたが グローバルIPの取得の方法も分からず… ご意見よろしくお願いします。 言語:C#.net/.NetFramework2.0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

IP取得、Lchan0211さんの回答のようにREMOTE_ADDRの取得でできます。取得したIPがプライベートのレンジかどうかを評価すれば良いですね。 <プライベートIP> http://yougo.ascii.jp/caltar/%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9 また、基本的にありえないですがマルチキャストアドレスの場合はエラーにするとか。。 <マルチキャストアドレス> http://www.infraexpert.com/study/multicast2.htm さらに注意点としては、IPv6への対応は近々必要になると思いますので、調べておいた方が先々のために良いかと思います。

16nacht
質問者

お礼

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

その他の回答 (2)

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.2

接続元のIPアドレスは、ASP.net C#の場合、 ServerVariables["REMOTE_ADDR"] で取得できます。 (参考) http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet04/aspnet04_02.html

16nacht
質問者

お礼

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

回答No.1

接続元のIPアドレスによって振る舞いを変えるのが一般的だと思います。 社内の計算機が使っているIPアドレスは調べるところを調べたら分かりそうな気がするので、社内のIPアドレスでない場合はすべて社外と判定するとするとよいでしょう。 もし、リバースプロキシなどを使っている場合でも、リバースプロキシで設定すればヘッダなどで接続元の情報を送るようにできると思います。あるいは、特定のリバースプロキシを使うことを理由に社外からのアクセスと判断できるかもしれません。

16nacht
質問者

お礼

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

関連するQ&A