You can use the dns-sd command as a network diagnosis tool, to browse and discover services, similar to how you would use the ping or traceroute command.
The dns-sd command is primarily for interactive use, mainly because its command-line arguments and its output format can change over time, which makes invoking it from a shell script unpredictable and risky. Additionally, the asynchronous nature of DNS service discovery (DNS-SD) does not easily lend itself to script-oriented programming.
For complete information, see the dns-sd (1M) man page. To incorporate the DNS service in applications, see the libdns-sd (3DNS_SD) man page.
The following are examples of advertising services using DNS service discovery.
Example 3-1 Advertising a Printing ServiceThe following command advertises the existence of LPR printing service on port 515 on a system called My Test, so that it will be available to DNS-SD compatible printing clients:
# dns-sd -R "My Test" _printer._tcp. . 515 pdl=application/postscript
For this registration to be useful, the LPR service must be available on port 515.
Example 3-2 Advertising a Web PageThe following command advertises a web page being served by an HTTP server on port 80 on the My Test system. The web page will appear on the Bonjour list in Safari and other DNS-SD compatible web clients.
# dns-sd -R "My Test" _http._tcp . 80 path=/path-to-page.html