如何使用jsp页面获取局域网IP地址?
我有我的应用程序写在JSP和Servlet页面。每当我尝试跟踪用户的IP地址时,它都会返回机器的全局IP地址(代理服务器地址),而不是该机器的局域网IP地址。那么,如何获取用户机器的LAN IP地址。请指引我走出这个问题...如何使用jsp页面获取局域网IP地址?
根据需要,您的网络服务器只会看到向您发送请求的机器的IP地址。如果用户位于代理服务器的后面,那么这将是代表用户发出请求的代理服务器(因此“代理”)。您无法追溯请求的来源,因为它可能来自任何地方。只有代理服务器会知道,除非它告诉你,你不会知道。
代理可能会发送一个额外的HTTP标头,如X-Forwarded-For
,在这种情况下它会告诉您它代表它的行为。这个IP地址反过来也可能是一个代理,但你不知道。此外,这些信息是无法验证的,可能是伪造的,所以您不应该依赖它。唯一可验证的IP地址是您的Web服务器收到请求并将响应发送到的那个IP地址。
如果你的机器在局域网内,你a)不会有这个问题开始,b)如果你这样做了,你可以通过机器名来查询某些东西。尽管这在很大程度上取决于网络基础设施,并且不具有普遍性。
非常感谢你!!! ... – Saravanan 2011-05-19 08:57:12
试试这个一本地机器......结果
InetAddress thisIp = InetAddress.getLocalHost();
例子是abcNamePc/172.11.0.115
它会给你两个信息 PC名称和IP
获取远程计算机的IP地址,如果您知道计算机的名称使用此
InetAddress address = InetAddress.getByName("name of the machine");
或
String sIPAddress = request.getRemoteAddr(); //or getRemoteHost()
获取客户端的远程IP。
这个工程。
+1所以有用谢谢:) – shareef 2012-06-13 09:56:41
您的网络服务器是否在该LAN之外? – deceze 2011-05-19 04:31:07
@deceze:你能否给出你对这两种情况的想法?但是我的服务器位于局域网之外。如果我的服务器位于局域网内,会发生什么? – Saravanan 2011-05-19 04:38:22