
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
@zargu/zone-handler
Advanced tools
Interface for adding / updating / deleting dns records in a dns zone.
zone-handler is a node.js Dynamic DNS update utility. It's working by executing bind-utils package's dig and nsupdate commands. It's required parameter an object with the zone, updateKey, transferKey fields, the keys must be contain name, algorithm, secret fields. In default case it will return a promise which give a handler object which have getRecords,add,update,delete methods for handle the zone by detailed below. Additionaly if the zone-handler invoke only with a zone field, in that case it will return the authoritative name server belonging to the given zone.
Use cases:
import zoneHandler from 'zone-handler';
const zoneData = {
zone:'example.com',
updateKey:{
name:'updatekey',
algorithm:'hmac-sha256',
secret:'...secret of the key'
}
transferKey:{
name:'updatekey',
algorithm:'hmac-sha256',
secret:'...secret of the key'
}
}
zoneHandler(zoneData).then(zone => {
/*
zone represents the zone, you can handle by calling getRecords,add,update,delete methods.
*/
},err => console.log(err));
records is an array of object conatning a hash and a record field. That hash can you use to identify records in case of update and delete. The record field of the objects contain an object wiht name,ttl,type,data fields.
let records = zone.getRecords();
Add record by object. (The name field without point at the end will be supplement with zone name!!!)
zone.add({name:'www.example.com.',ttl:3600,type:'A',data:'192.168.0.10'}).then(() => {
console.log('Record add successfully!');
},err => {
console.log('Guru meditation error! :)',err);
});
Add record by string of "dig" like response. (It is work with the update methode as well.)
zone.add("www.example.com. 3600 IN A 192.168.0.10").then(() => {
console.log('Record add successfully!');
},err => {
console.log('The task fail successfuly! :)',err);
});
hash is identify the zone's teenth record. You can use it for update and delete record.
let hash = zone.getRecords()[10].hash;
// Lets update then.
zone.update(hash,'www 3600 IN A 192.168.0.10').then(() => {
console.log('The teenth record updated!');
},err => console.log('No more joke.',err));
// delete teenth.
zone.delete(hash).then(() => {
console.log('deleted!');
},err => console.log('yet not'));
You can get the the authoritative name server belonging to the given zone by pass with object only the zone field.
let zoneData = { zone:'home.room.example.com' };
zoneHandler(zoneData).then(authoritative => {
console.log(authorytative); // {zone:'example.com',server:'ns.icann.org'}
},err => console.log('Something very bad thing was in the zone field'));
Sorry for my terrible english.
FAQs
Interface for adding / updating / deleting dns records in a dns zone.
We found that @zargu/zone-handler demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.