This is a node Wrapper around Network-Interface-Script written by Joe Kuan.
Allows you to read and update the contents of your /etc/network/interfaces
file.
This library is obviously only usable on systems that manage their network stack using /etc/network/interfaces
although you can
point the library at any file that has the same format.
More importantly - it depends on passwordless sudo for write access to the /etc/network/interfaces
file. You will have to do the necessary work to enable this in your environment.
Finally, it depends on access to the tee
command.
const NetworkInterfaces = require('node-network-interfaces');
const interfaces = new NetworkInterfaces('/absolute/path/to/my/interfaces/file');
// Read the config for a given interface
interfaces.currentConfig('eth0').then((interfaceConfig) => {
console.log(`Interface config was: ${interfaceConfig}`);
}).catch((readError) => {
console.log(`Error reading config: ${readError}`);
});
// Write to the config for a given interface
interfaces.setConfig('eth0', {
address: '192.168.2.12',
netmask: '255.255.255.0',
gateway: '192.168.2.1'
}).then((newConfig) => {
console.log(`Config for eth0 is now ${newConfig}`);
}).catch((configUpdateError) => {
console.log(`Failed to write config for eth0: ${configUpdateError}`);
})
For usage sample and more information, see this blog. For updating DNS entry, see this blog.