Detect non-connected devices in range of WiFi (for counting purposes)

I own a retail store, and I want to proxy my customer count by logging the number of devices that are picking up my WiFi throughout the day. I want to get, at any given time, the number of phones or other devices that are able to see my network if they go into their WiFi settings, even if they are not actually connecting to my WiFi.

As a hypothetical example, I own a Starbucks. You just came in for the first time and want to connect to WiFi on your phone. You open up your phone's settings and make sure WiFi is turned on. Then you view the list of available networks and decide which you want to connect to for your browsing purposes. In that list is "Starbucks Free WiFi." At this point, your device has picked up the existence of my WiFi, so as the WiFi/router owner can I also detect that your device has picked up this information? I know that if you actually connect to "Starbucks Free WiFi" then I can see your WiFi MAC from my router, but is there any way to detect you if you don't end up connecting as long as you're still picking up my network as a possible connection? I want to get a count of people who pick up my internet whether or not they have connected (and want to eliminate duplicates if actually connecting could count them twice), so I can determine how many people I had come through today.

If I log that data over time I can get some cool analytics. There are companies that already sell alternative hardware/software to put together these analytics, but the solutions they provide get expensive quickly. I'd like to just do this myself for the price of my already existent Internet bill.

1 Answer

This could be done by picking up the probes that devices usually send out when looking for new networks to connect to. These would typically be broadcast probe requests. A filter to see probe requests might be

wlan.fc.type_subtype == 0x04

I could imagine a filter for signal strength as well (i.e. above a specific level) to be sure they are in your particular location.

Note that some systems attempt to randomize MAC addresses which in some ways could reduce the value of your information. See, for example (and google...)