¿Cómo puedo obtener el FQDN (nombre de dominio completo) de la máquina en la que se ejecuta el nodo?
os.gethostname()
no es suficiente, ya que generalmente solo devuelve el DN no calificado. Lo mismo para dns.reverse(ip, callback)
: suponiendo que la ip es la asociada con el nombre de host, por ejemplo, obtenida usando dns.lookup(os.gethostname()[, options], callback)
.
Tampoco shell.exec("hostname -f", { silent: true }, cb)
es una opción, ya que no es compatible con POSIX y, por lo tanto, fallará, por ejemplo, en Solaris et. al., y es un hack realmente malo, ya que exec () es una llamada muy, muy costosa wrt. recursos como RAM y CPU (provoca cambio de contexto).
$(hostname).$(domainname)
funcionará tanto en Solaris como en Linux. Pero, no solo es Solaris POSIX, ¡tiene certificación POSIX! Es más POSIX que Linux.