本文摘要
泛微 EC9 中获取 IP 的两段 JSP 代码:一段用 InetAddress 取本机服务器 IP,便于在集群环境下确认请求落在哪台节点;另一段在登录态下输出 x-forwarded-for、getRemoteAddr、Util.getIpAddr 等取值,并遍历全部请求头,用于排查 OA 获取用户 IP 不准确的问题。
获取服务器IP地址
常用于集群环境下查看访问的是哪个服务器~
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page language="java" import="java.net.InetAddress" %><% out.println("=====本机ip地址======<br>"); InetAddress ia = InetAddress.getLocalHost(); String hostaddr = ia.getHostAddress(); out.println(hostaddr);
%>获取用户到达服务器的ip地址
常用于排查 OA 系统获取用户 IP 不准确的问题
<%@ page language="java" contentType="text/html; charset=GBK" %><%@ page import="java.io.*" %><%@ page import="java.net.*" %><%@ page import="java.util.*,weaver.general.Util" %><%@ include file="/systeminfo/init_wev8.jsp" %>----------------------------------------------------------<br/><% if(user!=null ){ out.println("x-forwarded-for::::"+request.getHeader("x-forwarded-for")+"<br/>"); out.println("Proxy-Client-IP::::"+request.getHeader("Proxy-Client-IP")+"<br/>"); out.println("WL-Proxy-Client-IP::::"+request.getHeader("WL-Proxy-Client-IP")+"<br/>"); out.println("getRemoteAddr::::"+request.getRemoteAddr()+"<br/>"); out.println("Util.getIpAddr()::::"+Util.getIpAddr(request)+"<br/>"); out.println("request::::"+request);
out.println("<br/><br/>-----------------------------headers----------------<br/>"); Enumeration headers = request.getHeaderNames(); while(headers.hasMoreElements()){ String header = ""+headers.nextElement(); //out.println("*********"+header+"---->"+request.getHeader(header)+"<br/>"); Enumeration headerValues = request.getHeaders(header); while(headerValues.hasMoreElements()){ String headerValue = ""+headerValues.nextElement(); out.println("*********"+header+"---->"+headerValue+"<br/>"); } }
out.println("<br/><br/>-----------------------------header----------------<br/>"); Enumeration headerValues = request.getHeaders("x-forwarded-for");
while(headerValues.hasMoreElements()){ String headerValue = ""+headerValues.nextElement(); out.println("*********x-forwarded-for---->"+headerValue+"<br/>"); }
}else{ out.println("no right!");}%><br/>-------------------------------------------------------------