我希望这不是太奇怪的问题。 我在IIS服务器上运行Web服务,可以通过端口转发从内部网络或外部(即Internet)访问。
外部: 例如,如果我使用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)中收到请求时,我需要知道请求是由防火墙转发还是内部到达。
感谢。
答案 0 :(得分: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有帮助)