[Javalist] [spam] Re: [spam] Re: CGI variable

Auth Gábor auth.gabor at javaforum.hu
2011. Sze. 22., Cs, 09:47:36 CEST


Hi,

> Igen a feladat az hogy beazonosítsuk milyen IP-címről hívtak egy
> webalkalmazást. S ha jól sejtem a proxy (melyen keresztül megy az illető
> web request-je) berak egy egy ilyen általad leírt headert/cgi változót,
> így ebből elcsíphető igazából milyen ip-címről jött a kérés.

  Nem is egyet és nem is akárhogy... :)

  Én így oldottam meg:
String ip = httpRequest.getRemoteAddr();
String hostname = httpRequest.getRemoteHost();
if (httpRequest.getHeader("X-Forwarded-For") != null)
{
  ip = httpRequest.getHeader("X-Forwarded-For");
  java.util.StringTokenizer ipToken = new java.util.StringTokenizer(ip, ",");
  if (ipToken.countTokens() > 1)
  {
    while (ipToken.hasMoreElements())
    {
      ip = ipToken.nextToken().trim();
    }
  }
  try
  {
    hostname = InetAddress.getByName(ip).getHostName();
  } catch (Exception except)
  {
    perfLogger.doLogWarn("Cannot get hostname from %1$s IP address: %2$s",
ip, except.toString());
  }
}
requestData.setHostname(hostname);
requestData.setIp(ip);

(http://svn.javaforum.hu/svn/javaforum20/branches/JFPORTAL-94/JavaForum2.0/JavaForum2.0-war/src/main/java/hu/javaforum/filters/StatFilter.java)
-- 
http://www.javaforum.hu -=- http://www.enaplo.hu
Auth Gábor -=- http://www.javaforum.hu/web/10/authgabor



További információk a(z) Javalist levelezőlistáról