I'm currently designing an IoT device that connects to a home network and an app to communicate over said network. I'm trying to find a way to reliably connect to the IoT device/ make the IoT device easily discoverable. I've had a few ideas on how I could do this:
Local DNS. - however, not all routers support this so this may be a "try and if it doesn't work do something else"
Send packets to the entire range of IPs on the network on a specified port, wait for a correct response. - This would be fine for smaller networks, but for places like universities and offices where the network is huge, it would be very slow. Also, this could throw red flags to network analyzers.
Use SSDP (Simple Service Discovery Protocol). - This seems like the best option I've come across, however I've seen that some people are blocking the multicast address for the protocol due to the possibility of DDoS attacks which wouldn't allow it to work. Also, I'm not sure if this would work on all routers.
If there are any other solutions/ any arguments for/against the three options I've presented please let me know!