Hostify is a module that help us to work with the hosts
file of our operating system.
It supports both a CLI tool and a module you can use in your own project.
NOTE: library in progress. Please use with caution and report any issue on here: https://github.com/eridem/hostify/issues
# Usage
hostify [COMMAND] [OPTIONS]
# For help
hostify --help
hostify [COMMAND] --help
Command | Description | Example |
---|---|---|
list |
Show all entries in the host file | hostify list |
list --ipFilterExp "REGEXP" |
Show entries which IPs match with RegExp | hostify list --ipFilterExp ".*\.255" |
list --hostFilterExp "REGEXP" |
Show entries which Host match with RegExp | hostify list --hostFilterExp ".*tracking.*" |
list --ipFilterExp "REGEXP" --hostFilterExp "REGEXP" |
Show entries which IP and Host match with both each RegExp | hostify list --ipFilterExp "0.0.0.0" --hostFilterExp ".*tracking.*" |
add --ip "IP" --host "HOST" [--comment "COMMENT"] |
Add a single entry to the hosts file |
hostify add --ip "0.0.0.0" --host "tracking.localhost" --comment "Tracking entry" |
delete --ipFilterExp "REGEXP" [--what-if] |
Delete entries which IPs match with RegExp | hostify delete --ipFilterExp "127.0.0.\d+" |
delete --hostFilterExp "REGEXP" [--what-if] |
Delete entries which Host match with RegExp | hostify delete --hostFilterExp ".*project\.local" |
Option | Description | Example |
---|---|---|
--path |
Specify path of another hosts file |
hostify list --path ./my-hosts.txt |
Import module with:
const hostify = require('hostify').operations
hostify.list(options): <Array>{ ip: string, host: string }`
Show entries in the host file.
Option | Model | Default |
---|---|---|
filterIpFn |
filterIpFn: (val: string) => boolean |
(v) => true |
filterHostFn |
filterHostFn: (val: string) => boolean |
(v) => true |
path |
path: string |
OS hosts path |
const options = {
filterIpFn: (val) => val.endsWith('.255'), // Filter IPs
filterHostFn: (val) => val.contains('tracking') // Filter Hosts
// path: './my-hosts-file.txt' // Hosts file
}
const entries = hostify.list(options)
entries.forEach(entry => console.log(entry.ip, entry.host, entry.comment))
hostify.add(options): <Array>{ ip: string, host: string }
Add entries in the host file.
Option | Model | Default |
---|---|---|
entries |
<Array>{ ip: string, host: string, comment: string } |
null |
path |
path: string |
OS hosts path |
const options = {
entries: [ // Entries to add
{ ip: '0.0.0.0', host: 'ad.localhost' },
{ ip: '0.0.0.0', host: 'tracking.localhost', comment: 'Track entry' }
],
// path: './my-hosts-file.txt' // Hosts file
}
const entries = hostify.add(options)
entries.forEach(entry => console.log(entry.ip, entry.host, entry.comment))
hostify.delete(options): <Array>{ ip: string, host: string }
Delete entries in the host file.
Option | Model | Default |
---|---|---|
filterIpFn |
filterIpFn: (val: string) => boolean |
(v) => true |
filterHostFn |
filterHostFn: (val: string) => boolean |
(v) => true |
whatIf |
whatIf: boolean |
false |
path |
path: string |
OS hosts path |
const options = {
filterIpFn: (val) => val.endsWith('.255'), // Filter IPs
filterHostFn: (val) => val.contains('tracking'), // Filter Hosts
whatIf: true // Do not execute delete operation, only obtain results
// path: './my-hosts-file.txt' // Hosts file
}
const entries = hostify.delete(options)
entries.forEach(entry => console.log(entry.ip, entry.host, entry.comment))