package com.test;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetServerIpServlet extends HttpServlet
{
private static final long serialVersionUID = 5538767708796214576L;
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
try
{
String serverIp = InetAddress.getLocalHost().getHostAddress();
int serverPort = req.getLocalPort();
Map serverInfo = new HashMap();
serverInfo.put("serverIp", serverIp);
serverInfo.put("serverPort", serverPort);
String clientIp = "";
String ip = req.getHeader("X-Forwarded-For");
if ((ip != null) && (ip.length() != 0) && (!"unKnown".equalsIgnoreCase(ip)))
{
int index = ip.indexOf(",");
if (index != -1)
clientIp = ip.substring(0, index);
else {
clientIp = ip;
}
}
ip = req.getHeader("X-Real-IP");
if ((ip != null) && (ip.length() != 0) && (!"unKnown".equalsIgnoreCase(ip))) {
clientIp = ip;
}
clientIp = req.getRemoteAddr();
serverInfo.put("clientIp", clientIp);
int clientPort = req.getRemotePort();
serverInfo.put("clientPort", clientPort);
resp.getOutputStream().write(serverInfo.toString().getBytes());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doGet(req, resp);
}
}