本文摘要
泛微 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/>
-------------------------------------------------------------