En primer lugar, antes de dar una respuesta, me gustaría ser sincero sobre el hecho de que al confiar en los encabezados está abriendo la puerta a vulnerabilidades de seguridad como el phishing. Por lo tanto, para fines de redireccionamiento, no use valores de encabezados sin primero validar que la URL esté autorizada.
Entonces, el nombre de host de su sistema operativo podría no coincidir necesariamente con el DNS. De hecho, una IP puede tener más de un nombre DNS. Por lo tanto, para fines HTTP no hay garantía de que el nombre de host asignado a su máquina en la configuración de su sistema operativo sea utilizable.
La mejor opción que puedo pensar es obtener su IP pública de escucha HTTP y resolver su nombre a través de DNS. Vea el dns.reverse
método para más información. Pero, de nuevo, tenga en cuenta que una IP puede tener múltiples nombres asociados.