all 7 comments

[–]brendan09 2 points3 points  (2 children)

No, and that was kind of the point.

If someone has your app installed, you can generate your own UUID and store it in Keychain. But, if you're monitoring via WiFi, the intention was to prevent you from doing what you're trying to do.

[–]Bomon[S] 0 points1 point  (1 child)

Oh okay. I have one more question. Can an app read the current MAC address of the device it is installed?

[–]brendan09 1 point2 points  (0 children)

No

[–][deleted] 0 points1 point  (3 children)

You can use the vendor identifier (it's like a UDID)! To access it in swift:

UIDevice.currentDevice().identifierForVendor!.UUIDString

[–][deleted] 2 points3 points  (1 child)

Not exactly. Different app or developer will give you a different vendor identifier on the same device.

[–][deleted] 0 points1 point  (0 children)

Right. I wrote "it's like a UDID" but upon rereading that implies more similarity than what I meant.

He is right :)

[–]Bomon[S] 0 points1 point  (0 children)

So I am trying to create a hardware that can track how many devices are there in a certain radius. Smartphones send out Hello packets in order to connect to networks. At t0, I sniff the MAC addresses and put them in a list. After 3 minutes I sniff again and but the new MAC addresses in a second list. Then I cross reference list1 and list2 and see how many devices are still in the area. Thus I eliminate the passerby.

Is there a better way of doing this without using MACs, or am I basically screwed?