Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

mdns-discovery

soef4.5kMIT0.2.6

Multicast DNS

mdns, broadcast, datagram, dgram, multicast, discovery

readme

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);
    });
});