/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.monitor; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.geotools.util.SoftValueHashMap; import org.geotools.util.logging.Logging; public class ReverseDNSPostProcessor implements RequestPostProcessor { static final Logger LOGGER = Logging.getLogger(ReverseDNSPostProcessor.class); static Map<String, String> reverseLookupCache = new SoftValueHashMap<String, String>(100); public void run(RequestData data, HttpServletRequest request, HttpServletResponse response) throws Exception { String host = reverseLookupCache.get(data.getRemoteAddr()); if(host == null) { try { InetAddress addr = InetAddress.getByName(data.getRemoteAddr()); host = addr.getHostName(); } catch(UnknownHostException e) { LOGGER.log(Level.FINE, "Error reverse looking up " + data.getRemoteAddr(), e); } } data.setRemoteHost(host); } }