Antes de tudo, antes de fornecer uma resposta, gostaria de ser sincero sobre o fato de que, confiando nos cabeçalhos, você está abrindo a porta para vulnerabilidades de segurança, como phishing. Portanto, para fins de redirecionamento, não use valores dos cabeçalhos sem antes validar a URL autorizada.
Em seguida, o nome do host do sistema operacional pode não corresponder necessariamente ao nome DNS. De fato, um IP pode ter mais de um nome DNS. Portanto, para fins de HTTP, não há garantia de que o nome do host atribuído à sua máquina na configuração do sistema operacional seja utilizável.
A melhor opção em que posso pensar é obter o IP público do ouvinte HTTP e resolver seu nome via DNS. Veja o dns.reverse
método para mais informações. Mas, novamente, observe que um IP pode ter vários nomes associados a ele.