I'm working on a utility using Python to discover hardware connected to a network using UDP broadcasts. The devices respond to the UDP boradcast and from there I periodically query their onboard webserver for a data file. After doing some research I've realized it looks like it isn't possible to broadcast and receive responses from the devices on a different subnet. I don't have access to the routers to change configuration and can't guarantee that the broadcast will make it through.
I've looked at this SO question/answer mentioning ip-multicasting but I'm not sure it applies to me because as far as I know the devices aren't capable of joining a multicast group (at least that's my understanding of how ip-multicasting works).
My proposed solution is to use a library like gevent to poll a user-defined range of IP addresses or all IPs on a subnet for the device's data file. This would obviously take a bit of time but wouldn't have to be run often, maybe once a week or month.
So, from my sparse description, is what I've proposed probably the only way to do it? Or could there be a better approach?