Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

hostile cinpmdownloadsjavascript style guide

Simple, programmatic /etc/hosts manipulation (in node.js)

hostile

install

npm install hostile

usage

If 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.

list all host file records

hostile list

set a domain in the hosts file

hostile set [ip] [host]

examples:

hostile set localhost domain.com
hostile set 192.168.33.10 domain.com

remove a domain from the hosts file

hostile remove [host]

example:

hostile remove domain.com

load a set of hosts from a file

hostile load [file_path]

hosts.txt

# hosts.txt
127.0.0.1 github.com
127.0.0.1 twitter.com

example:

hostile load hosts.txt

unload [remove] a set of hosts from a file

hostile unload [file_path]
# hosts.txt
127.0.0.1 github.com
127.0.0.1 twitter.com

example:

hostile unload hosts.txt

methods

Commands 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.

add a rule to /etc/hosts

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.

remove a rule from /etc/hosts

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.

get all lines in /etc/hosts

// 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]})})

get all lines in any file

// 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]})})

contributors

license

MIT. Copyright (c) Feross Aboukhadijeh.

About

Simple, programmatic `/etc/hosts` manipulation (in node.js)

Topics

Resources

Stars

795 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages