[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