I would like to detect whether the user has our device present on the local network or not. This would happen during signup and the purpose is to be able to link the (already server-connected) device to the user.
My other idea is to match the public ip address of the browser app and the device, as both connect to the same server(s), and let user select any matching device during signup. This does not sound lot better (for me).
If you have any opinion or other ideas, please share. Thank you!
Avoiding dark patterns is very easy - just be honest with the user.
This would not only fail with carrier-grade NATs but could be a privacy risk if different people share the same IP address (shared accommodations, etc).