2

あまり変な質問ではないことを願っています。ポート転送によって内部ネットワークまたは外部 (つまりインターネット) からアクセスできる IIS サーバーで Web サービスを実行しています。

外部: たとえば、http://my_public_domain_nameを使用してインターネットからサーバーに接続すると、ファイアウォールはポート 80 をサーバーに転送します。

内部: サーバーのローカル ネットワークに IP 10.50.1.1 があり、PC が 10.60.1.1 (同じ itranet、異なるサブネット) にあると仮定すると、http://10.50.1.1でアクセスできます。

IIS (ASP.NET) で要求を取得した場合、要求がファイアウォールによって転送されたのか、それとも内部で受信されたのかを知る必要があります。

ありがとう。

4

1 に答える 1

4

サーブレットで一度、LAN からのみ管理者アクセスを取得したかったので、使用していた内部 IP 範囲を取得し、管理者としてログインするための簡単なルールを作成し、IP がその範囲内にあることを確認しました。

Java では、HttpServletRequest.getRemoteAddr() と getRemoteHost() を使用しました。

このページhttp://www.geekpedia.com/tutorial45_How-to-get-IP-address-of-client.htmlを見ると、同等の ASP は次のようになります。

Request.ServerVariables("REMOTE_ADDR")

そして、このページのようなものは、それがプライベート (内部) IP 範囲であるかどうかを判断するのに役立ちます: https://en.wikipedia.org/wiki/Private_network (IPv6 IP に役立つかどうかはわかりません)

于 2012-04-19T08:26:33.240 に答える