Dificuldades para capturar o host de um site que chama meu iframe

Estou me deparando com o seguinte problema. tenho uma aplicação WEB Struts que é usada como Iframe por alguns outros dominios, esta aplicação precisa implementar uma regra caso o seja chamada por um dominio X e outra regra caso seja chamada por um dominio Y. Estou tentando usar o HttpServletRequest, para capturar estes o dominio que chama o Iframe da minha pagina, porem estou recebendo o parâmetro nulo .

HttpServletRequest req = (HttpServletRequest);

System.out.println("Referencia: "+req.getHeader("Referer"));
System.out.println("Host: "+req.getHeader("Host"));
System.out.println("Origin: " + req.getHeader("Origin"));

tentei fazer a leitura de todos os Headers da request, porem nao obtive o parametro desejado.

    System.out.println("Request Headers:");
    Enumeration names = req.getHeaderNames();
    while (names.hasMoreElements()) {
      String name = (String) names.nextElement();
      Enumeration values = req.getHeaders(name); // support multiple values
      if (values != null) {
        while (values.hasMoreElements()) {
          String value = (String) values.nextElement();
          System.out.println(name + ": " + value);
        }
      }
    }

Gostaria de capturar o hostname da pagina que chama um iframe da minha pagina.

O método getRemoteAddr() do HttpServletRequest não resolve sua necessidade?

Obrigado Amigo irei testar aqui esse metodo e passo o status.

Meu caro staroski, realizei o testes com o getRemoteAddr, porém ele captura dados da maquina Client e nao o DNS que está chamando, gostaria de receber o site que está embedando minha URL.

    InetAddress inaHost = InetAddress.getByName(request.getRemoteAddr());
    String hostname = inaHost.getHostName();
    System.out.println("[[ Hostname = " + hostname + " ]]");
    System.out.println("Referencia: "+req.getHeader("Referer"));
    System.out.println("Host: "+req.getHeader("Host"));

Por exemplo site1.com.br usa minha pagina como iframe,

    <iframe src="meusite.com.br"></iframe>

Gostaria de saber como capturo o DNS do site que está embedando minha aplicação.

Acho que, antes de tudo, você precisa saber se a informação que deseja é encaminhada no request ao servidor.
Use algum web profiler (o Developer Tools tanto do IE como do Chrome podem auxiliá-lo) e ver se a informação segue no request e onde/como ela é enviada.

staroski, realizei algumas verificações consegui implementar a solução com o req.getHeader(“Referer”), porem tive muitos problemas com conteúdos estáticos (html, css, js), visto que minha App realiza cacheamento dos cabeçalhos tratados, por exemplo o xframe option same orign.