2

我希望这不是太奇怪的问题。我在 IIS 服务器上运行 Web 服务,可以通过端口转发从内部网络或外部(即 Internet)访问该服务。

外部:例如,如果我使用http://my_public_domain_name从 Internet 连接到我的服务器,那么防火墙会将端口 80 转发到我的服务器。

内部:假设我的服务器在本地网络中有 ip 10.50.1.1 并且我的 PC 在 10.60.1.1 (相同的 itranet,不同的子网)中,而不是我可以通过http://10.50.1.1访问它。

当我在 IIS (ASP.NET) 中收到请求时,我需要知道该请求是由防火墙转发还是在内部到达。

谢谢。

4

1 回答 1

4

曾经在一个 Servlet 中,我只想从 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 回答