What you are trying to do (a) probably cannot be done, and (b) probably would not be very useful if it could.
Bonjour's point is to look for services, not devices. Of course, each service is provided by some device, so indirectly you can discover devices with it ... but only by discovering the service they advertise.
As far as I know, (except for Apple TV) they donāt advertise any services, unless you use an application that uses Bonjour to search for the same application on other computers. (Except for malicious devices that often advertise SSH, AFP, etc.)
There are several ways, indirectly, to get a list of all the services that are advertised by someone on the network. The easiest way is to use Bonjour Browser for Windows . (I never used it, but the original tool for Mac and the Java port, both of which I used, offer this Windows port for Windows users.) Run it and you will get a list of services and you can click on each of them to get information.
So, you can make sure that your iPhone and iPad do not advertise any services, which will show that they cannot be detected through Bonjour.
Meanwhile, even if you find a device, what do you plan to do? Presumably, you want to somehow contact the device, right? Regardless of the service you are trying to contact ... just browse this service, and then, if necessary, filter it to iOS devices. It has become easier than browsing iOS devices and then filtering to those who have the service you want.
As for the way to detect iOS devices ... Well, there are at least two possibilities. I donāt know if any of them will work, but ...
First, even if the iOS device doesnāt advertise anything for you, I assume that it is viewing services that you can advertise. How else did he discover that there is an Apple TV for AirTunes, iTunes on the local network for synchronization, etc.?
So, use Bonjour Browser to get a list of all the services that your iTunes desktop, Apple TV, etc. are running on. Then turn off all services on your desktop, use PyBonjour to advertise which services seem plausible (and, if necessary, use netcat to host trivial listeners on the ports you advertise). Then turn on your iPhone and see if it connects to any of them. You might want to leave it for a while or turn off WiFi and turn on WiFi again. (I assume that despite Appleās recommendations, he doesnāt constantly look at most services, but checks it every time and / or every time his network status changes. After all, Appleās recommendations are for interactive foreground applications, not background services.)
Unfortunately, even if you can find a service to which all iOS devices will connect, you cannot distinguish iOS devices from others just by getting connections there. For example, Iām sure that any Mac or Windows with iTunes installed will pick up your fake AirTunes service, and any Mac will end up in your AirPrint and so on. So how do you distinguish this from the fact that the iPhone hit it? You may need to actually execute enough protocol to get information from them. It will be especially difficult for Apple without documents.
But I hope you are lucky and there will be something that all iOS devices want to talk to and nothing else. iTunes Sync seems like an obvious opportunity.
In addition, there are a few things that they need to broadcast, or they simply wonāt work. You cannot get into the WiFi network without broadcasts. And most home Wi-Fi networks use DHCP, which means that they must also relay DHCP discovery (and request). There may be some kind of heuristic signature in these messages. If nothing else, enabling DDNS should force the device to send its hostname, and you can guess based on this (for example, if you do not change the default values, hostname.lower().endswith('iphone') ).
The easiest way is probably to configure the desktop as the primary access point for your home network. I find this to be as simple as enabling access to an Internet connection somewhere in the control panel. (Setting up a DHCP relay agent is much smaller than a full router, but I have no idea how you even start doing it on Windows.) Then you can capture DHCP broadcasts (or, otherwise, 802.11) when they come in. Wireshark will easily capture and analyze messages for you so you can watch and see if it looks like it's worth going on. (See RFC 2131 for details on a format that is not obvious from Wireshark cryptographic single-line descriptions.)
You can do it even further and see the Internet connections that each host makes when they are connected to the Internet. Any device that periodically checks the App Store, iOS update server, etc. .... Well, if one of the devteam jailbreak lives in your house, this is probably the iPhone, right? The disadvantage is that some of these checks can be very periodic, and detecting the iPhone 6 hours after it is connected to your network is not very interesting.