MAC addresses aren't available in the LAN scanner under iOS 11

On iOS 11 or later the LAN scanner doesn't show MAC addresses. This happens because since iOS 11 Apple doesn't allow apps to access the MAC addresses in the ARP table of the operating system and read the addresses from there during the scan. I talked with Apple engineers about this problem at WWDC and was told that this is a privacy feature of iOS because MAC addresses are unique and some developers misuse them to track users.

The consequences of not having access to the MAC addresses in the ARP table are:

  1. MAC addresses of the scanned devices cannot be shown.
  2. Manufacturers of the scanned devices cannot be shown as these are derived from the first 3 bytes of the MAC address using the OUI database.
  3. Custom names cannot be assigned to the discovered devices - there is no unique identification of the discovered devices apart from their MAC (IP addresses can change because of DHCP) so the app doesn't know to which device the name should be assigned.
  4. For WOL the MAC address has to be determined by some other means - e.g. checking the label on the back of the device or through the device's configuration menus - and then entered manually to the app.

This is a very unfortunate situation as it severely limits the functionality of the LAN scanner. I believe there is a technical solution to this problem - there could be a new permission like "Network Utility" (either exposed to users or hidden from users and only checked during app review) which would allow network utility apps to access the potentially sensitive network-related information. Apps which don't show MAC addresses directly to users wouldn't be allowed to get this permission. I created a new bug report in the Apple bug reporter (for reference, the number of the report is 32971866) suggesting this solution but it's up to Apple to decide whether to implement this or not.

If the removal of the MAC-related features from the LAN scanner affects your business you might consider contacting Apple and explaining why it is important for you (you could reference the report number from the paragraph above so they can find more technical explanation of the problem). Maybe a a significant number of "me too"s might convince Apple to keep the ARP table accessible in some way.

Note 1: Right now there is no such limitation on Android so if you have access to an Android phone, you can use the Android version of the app (or the free version). Licenses cannot be shared between Android and iOS though so the Android version of the app has to be re-purchased from the Play Store.

Note 2: If you are wondering why your router's management app can show MAC addresses of connected devices, please check this FAQ.

Note 3: The Fing app guys who were facing the same issue created a petition here asking Apple to make MAC addresses accessible by network utility apps. This effort didn't seem to have any effect and the same problem exists in iOS 12.