O truque é utilizar a função getnameinfo(...)
fornecida pelo sistema operacional geralmente via libc.so ou libsocket.so, já que ela faz uma pesquisa FQDN por padrão! Como dns.lookupService(address, port, callback)
parece ser a única função principal do nodeJS documentada, que "envolve", precisamos usar essa. Por exemplo:
var os = require('os');
var dns = require('dns');
var h = os.hostname();
console.log('UQDN: ' + h);
dns.lookup(h, { hints: dns.ADDRCONFIG }, function(err, ip) {
console.log('IP: ' + ip);
dns.lookupService(ip, 0, function (err, hostname, service) {
if (err) {
console.log(err);
return;
}
console.log('FQDN: ' + hostname);
console.log('Service: ' + service);
});
});
A porta 0 é usada no exemplo para mostrar que isso não tem influência no resultado (por padrão, não há serviço definido para essa porta).