I would be interested in knowing which programs advertise themselves using Bonjour on my machine. Is there a way to do that?
MacOS – list all the Bonjour-enabled services that are running
bonjourmacos
Related Question
- Using a dyn.com dynamic host name with an AirPort device
- How to find IP address of the other Mac
- MacOS – How to configure OS X server to advertise SMB over bonjour
- MacOS – used the command line to disable settings in Yosemite that have made the Mac visible
- How to list the IP addresses of all the AirPrint printers on a network
- MacOS – How to lookup the IP address of a Bonjour host
Best Answer
The
dns-sd
command-line tool can be helpful for this, but learning to use it is a bit tricky.Running
dns-sd -B _services._dns-sd._udp
will return a list of all available service types that currently being advertised. (The list is per interface, so there will be some redundancy.) If this is done on a Mac with no active network connection, the list will of course only contain services running on that machine.Using that list, you can request information about the individual services types by running things like
dns-sd -B _home-sharing._tcp
(which lists iTunes Home Sharing instances), and then, given an instance name, you can rundns-sd -L "Wes Campaigne’s Library" _home-sharing._tcp
to lookup information for a particular instance.To be honest, though, this whole process is rather tedious, and it's exactly what Discovery (formerly Bonjour Browser) was built to do, so I highly recommend using that. Whichever way you do it, though, it may not always be clear what program is responsible for a given service entry.
You can use the strategy given in binarybob's answer to try to map service entries to running processes based on port number, but this may not always work. Another strategy is to run something like
dns-sd -B _home-sharing._tcp
which remains open and reports when instances are added or removed, then, one by one, quit various apps and (assuming it's not a system service) see which one's quitting triggers the removal message.