Something should come from the button of the window with a log this will display all of your Bonjour services. Then click the Run button (looks like a play button) and wait for a Build Succeeded image. Click the + button, search for amework, and add it. Next, you'll need to add amework to the project by clicking the project name in the sidebar > Build Phases and open the dropdown arrow next to Link Binary With Libraries. Open and copy all text in ~/Downloads/DNSServiceMetaQuery/DNSServiceMetaQuery.cand paste it into main.c of your new Command Line Tool project (replacing everything that was there in the template).
Create a new project under the template of Mac OS X > Application > Command Line Tool.
Then, install Xcode if you haven't already.
To run DNSServiceMetaQuery on Mountain Lion (the included build does not run properly), go to the sample code link and click Download Sample Code. Machines must be running mDNSResponder-58.6 (Mac OS X 10.3.4) or later in order to respond to this query.
This sample uses DNSServiceQueryRecord to send a Multicast DNS query that returns a list of Bonjour service types being advertised on the local network. 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.Īlthough classified as a legacy article, this very may well be what you are looking for: DNSServiceMetaQuery.
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. Whichever way you do it, though, it may not always be clear what program is responsible for a given service entry. 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. 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 run dns-sd -L "Wes Campaigne’s Library" _home-sharing._tcp to lookup information for a particular instance. In a Just Add Power system, Bonjour Browser is used to find the IP address of Just Add Power Transmitters and Receivers that are part of the same LAN as the computer. (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. Bonjour Browser is a utility to discover services on a local area network (LAN) using multicast Domain Name System (mDNS) service records. Running dns-sd -B _services._dns-sd._udp will return a list of all available service types that currently being advertised. The dns-sd command-line tool can be helpful for this, but learning to use it is a bit tricky.