npm install hostileIf you use OS X or Linux, this module assumes your hosts file is at /etc/hosts. On
Windows, it assumes your hosts file is at C:/Windows/System32/drivers/etc/hosts.
Commands that modify the hosts file require root privileges.
hostile listhostile set [ip] [host]examples:
hostile set localhost domain.com
hostile set 192.168.33.10 domain.comhostile remove [host]example:
hostile remove domain.comhostile load [file_path]hosts.txt
# hosts.txt
127.0.0.1 github.com
127.0.0.1 twitter.comexample:
hostile load hosts.txthostile unload [file_path]# hosts.txt
127.0.0.1 github.com
127.0.0.1 twitter.comexample:
hostile unload hosts.txtCommands that modify the hosts file require root privileges.
I wouldn't recommend running your production node server with admin privileges unless you
downgrade to a normal user with
process.setuid(id)
before you start accepting requests.
All methods have sync versions. Just omit the callback parameter.
varhostile=require('hostile')hostile.set('127.0.0.1','peercdn.com',function(err){if(err){console.error(err)}else{console.log('set /etc/hosts successfully!')}})If the rule already exists, then this does nothing.
hostile.remove('127.0.0.1','peercdn.com',function(err){if(err){console.error(err)}else{console.log('set /etc/hosts successfully!')}})If the rule does not exist, then this does nothing.
// If `preserveFormatting` is true, then include comments, blank lines and other// non-host entries in the resultvarpreserveFormatting=falsehostile.get(preserveFormatting,function(err,lines){if(err){console.error(err.message)}lines.forEach(function(line){console.log(line)// [IP, Host]})})// If `preserveFormatting` is true, then include comments, blank lines and other// non-host entries in the resultvarpreserveFormatting=falsehostile.getFile(file_path,preserveFormatting,function(err,lines){if(err){console.error(err.message)}lines.forEach(function(line){console.log(line)// [IP, Host]})})- Feross Aboukhadijeh (author)
- Maayan Glikser
MIT. Copyright (c) Feross Aboukhadijeh.
