Getting client hostname in Node.js
You can use the 'dns' module to do a reverse dns lookup:
require('dns').reverse('12.12.12.12', function(err, domains) {
if(err) {
console.log(err.toString());
return;
}
console.log(domains);
});
See: http://nodejs.org/docs/v0.3.1/api/all.html#dns.reverse
I think this might help you. That's not exactly the client hostname but the ip address.
function getClientAddress(req) {
return req.headers['x-forwarded-for'] || req.connection.remoteAddress;
}
I think the only way you can do it is like this:
<form method="post" action="/gethostname">
<label for="hostname">What is your hostname?</label>
<input type="text" name="hostname" id="hostname">
</form>
But I would suggest you don't really need it, it's not like you can do anything useful with the information. If you just want a string to identify with the user's machine then you can make something up.
If what you're really after is the FQDN then I would suggest it's still not really that useful to you, but for that you need Reverse DNS lookup. If you're on a VPS or similar you can probably configure your box to do this for you, but note that it'll likely take a few seconds so it's not a good idea to do it as part of a response. Also note, you'll not be getting the user's machine's FQDN in most cases but that of their router.