All Projects → troglobit → mdnsd

troglobit / mdnsd

Licence: BSD-3-Clause license
Jeremie Miller's original mdnsd

Programming Languages

c
50402 projects - #5 most used programming language
M4
1887 projects
Makefile
30231 projects

Projects that are alternatives of or similar to mdnsd

MDNS Generic
mDNS Library for nRF52, SAMD21, SAMD51, SAM DUE, STM32F/L/H/G/WB/MP1, AVR Mega, RP2040-based boards, etc. using Ethernet W5x00. Supports mDNS (Registering Services) and DNS-SD (Service Discovery). Ethernet_Generic library is used as default for W5x00
Stars: ✭ 22 (-48.84%)
Mutual labels:  mdns, mdns-sd
iOS-AirPrint-for-Mac
enable iOS Airprint Sharing on Mac OS
Stars: ✭ 24 (-44.19%)
Mutual labels:  mdns, mdnsresponder
radiale
What if home automation was homoiconic? Just transformations of data? No more YAML!
Stars: ✭ 21 (-51.16%)
Mutual labels:  mdns
NetService
Swift NetService (Bonjour / Zeroconf / mDNS) implementation for Linux
Stars: ✭ 103 (+139.53%)
Mutual labels:  mdns
trustydns
DNS Over HTTPS proxy, server and query programs
Stars: ✭ 22 (-48.84%)
Mutual labels:  unix-daemon
dragit
Application for intuitive file sharing between devices.
Stars: ✭ 121 (+181.4%)
Mutual labels:  mdns
airprint-proxy
Advertise AirPrint printers for network printers located outside the subnet using node. GPL-3.0 licensed.
Stars: ✭ 23 (-46.51%)
Mutual labels:  mdns
mdns lite
A simple, no frills mDNS implementation in Elixir
Stars: ✭ 29 (-32.56%)
Mutual labels:  mdns
VCVRack-Holon.ist
Holon.ist Receiver for VCV Rack
Stars: ✭ 13 (-69.77%)
Mutual labels:  mdns
libmicrodns
Minimal mDNS resolver (and announcer) cross-platform library
Stars: ✭ 48 (+11.63%)
Mutual labels:  mdns
Super-Simple-RGB-WiFi-Lamp
A project based on the ESP8266 and WS2812b
Stars: ✭ 61 (+41.86%)
Mutual labels:  mdns
playercast
Cast to media player and control playback remotely.
Stars: ✭ 46 (+6.98%)
Mutual labels:  mdns
docker-mdns
Simple mDNS/ZeroConf demonstration of a nginx container, acessible at http://nginx.local
Stars: ✭ 25 (-41.86%)
Mutual labels:  mdns
Francis
Bonjour browser for macOS and iOS
Stars: ✭ 25 (-41.86%)
Mutual labels:  mdns
VindicateTool
LLMNR/NBNS/mDNS Spoofing Detection Toolkit
Stars: ✭ 40 (-6.98%)
Mutual labels:  mdns
Ciao
Publish and discover services using Bonjour
Stars: ✭ 50 (+16.28%)
Mutual labels:  mdns
mdns-tunneller
Tunnels two (or more) mDNS domains together
Stars: ✭ 74 (+72.09%)
Mutual labels:  mdns
GCXMulticastDNSKit
Multicast DNS framework for iOS
Stars: ✭ 16 (-62.79%)
Mutual labels:  mdns
netdisco
🔎 Python library to scan local network for services and devices.
Stars: ✭ 252 (+486.05%)
Mutual labels:  mdns

mdnsd - embeddable Multicast DNS Daemon

License svg Repology svg GitHub svg Coverity svg

About

Jeremie Miller's original mDNS/mDNS-SD library daemon.

Download a versioned relased tarball (not a GitHub zip) to unlock a fully supported version. Hardcore devs. can proceed to clone the GIT repository, see below for help.

Usage

mdnsd by default reads service definitions from /etc/mdns.d/*, but a different path can be given, which may be a directory or a single file.

Usage: mdnsd [-hnpsv] [-i IFACE] [-l LEVEL] [-t TTL] [PATH]

    -h        This help text
    -i IFACE  Announce services only on this interface, default: all
    -l LEVEL  Set log level: none, err, notice (default), info, debug
    -n        Run in foreground, do not detach from controlling terminal
    -s        Use syslog even if running in foreground
    -t TTL    Set TTL of mDNS packets, default: 1 (link-local only)
    -v        Show program version

Bug report address: https://github.com/troglobit/mdnsd/issues

By default mdnsd daemonizes, detaches from the controlling terminal and continues running in the background, logging errors (or debug messages if enabled) to the systmem log. There is no output to be expected. On GNU/Linux, use mdns-scan, the bundled mquery tool, or Wireshark to verify your setup. Other operating systems have their own set of tools for mDNS-SD and mdnsd may not even have a place there.

mdnsd runs on all multicast enabled system interfaces. It can be limted to run on only one using the -i IFACE command line option. Starting mdnsd early in the boot process, when the interface may not yet have acquired an IP address, or the interface itself may not even exist yet, mdnsd handles this by periodically probing for interface changes.

See the file API.md for pointers on how to use the mDNS library.

Service Records

This section provides a couple of service record examples. The syntax of the files is fairly free form. Optional directives: name, txt, target, and cname.

Note: you need at least one service record for mdnsd to respond to queries from, e.g., mdns-scan.

FTP service example:

# /etc/mdns.d/ftp.service -- mDNS-SD advertisement of FTP service
name Troglobit FTP Server
type _ftp._tcp
port 21
txt server=uftpd
txt version=2.6
target ftp.luthien.local
cname ftp.local

HTTP service example:

# /etc/mdns.d/http.service -- mDNS-SD advertisement of HTTP service
name Troglobit HTTP Server
type _http._tcp
port 80
txt server=merecat
txt version=2.31
target www.luthien.local
cname home.local

SSH service example:

# /etc/mdns.d/http.service -- mDNS-SD advertisement of SSH service
name Dropbear SSH Server
type _ssh._tcp
port 22

Build & Install

This project is built for and developed on GNU/Linux systems, but should work on any UNIX like system. Use the standard GNU configure script to create a Makefile for your system and then call make.

./configure
make all
make install

Users who checked out the source from GitHub must run ./autogen.sh first to create the configure script. This requires GNU autotools and pkg-config to be installed on the build system.

If you install to the default location used by the configure script, the library is installed in /usr/local/lib, which may not be in the default search path for your system. Depending on the C library used, the file /etc/ld.so.conf may exist (there may also be a sub-directory). If /usr/local/lib is already listed there, you may need to update the cache:

ldconfig -v |grep mdnsd

If you don't get any output from the above command, the ld.so.conf needs updating, or you may not be using the GNU C library.

Origin & References

This mDNS-SD implementation was developed by Jeremie Miller in 2003, originally announced on the rendezvous-dev mailing list. The original name was 'mhttp'. It has many forks and has been used by many other applications over the years.

The GitHub project is an attempt by Joachim Wiberg to clean up the original code base, develop it further, and maintain it for the long haul under the name mdnsd.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].