Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

mdns-discovery

0.2.6 • Public • Published

mdns Multicast DNS

NPM version License

Some Examples:

Find all Amazon Fire TV devices on the local network:

 
var Mdns = require('mdns-discovery');
 
var mdns = new Mdns({
    timeout: 4,
    returnOnFirstFound: true,
    name: '_amzn-wplay._tcp.local',
    find: 'amzn.dmgr:'
});
mdns.run (function(res) {
    res.forEach(enry) {
       console.log(entry);
    }
});

List all mdns questions and answers for 10 seconds:

var Mdns = require('mdns-discovery');
 
var mdns = new Mdns({ timeout: 10 });
mdns.on('packet', function (packets, rinfo) {
    if (packets.answers) packets.answers.forEach(function(packet, i) {
        console.log(`A: ${rinfo.address} - packet[${i}]=${packet.name}, type=${packet.type}, class=${packet.class}, ttl=${packet.ttl}}`);
    });
    if (packets.questions) packets.questions.forEach(function(packet, i) {
        console.log(`Q: ${rinfo.address} - packet[${i}]=${packet.name}, type=${packet.type}, class=${packet.class}, ttl=${packet.ttl}}`);
    });
});
mdns.run ();

Presence:

var mdns = require('mdns-discovery')();
 
mdns.onIP('192.168.1.31', function (packet, rinfo) {
    if (packet.answers.length) {
        console.log(rinfo.address + ' is present');
    }
}).run ();

Filter:

var mdns = require('mdns-discovery')();
 
var mdns = Mdns({
    timeout: 3,
    name: '_amzn-wplay._tcp.local',
    find: 'amzn.dmgr:'
});
 
var allreadyUsed = [ {ip: '192.168.1.94'}, {ip: '192.168.1.91'} ];
 
mdns.setFilter('ip', allreadyUsed).run (function(res) {
    res.forEach(function(v) {
        console.log(v);
    });
});

Install

npm i mdns-discovery

DownloadsWeekly Downloads

3,346

Version

0.2.6

License

MIT

Last publish

Collaborators

  • avatar