An easy way to monitor the network condition is to host your own Telemetry server just like how Parity provides the public service. You can find the code at here. The substrate client will connect to the default telemetry endpoint if the user doesn't change it by cli flags. The default endpoint is stored in your chain spec file. So if you want to monitor your own blockchain, this could be a good enough approach.
However, as pointed out in the comments, the Telemetry connection can always be opt-out by the user. To get a more accurate list, you can run your own crawler to walk the network. This is especially useful if you want to monitor a network without asking users to opt-in your telemetry service. Walking the p2p network is a pretty common pattern used by Bitcoin dns seed crawler. I didn't see any working code for Substrate, but since Substrate uses libp2p, maybe you can check if some existing ipfs crawler can work with slightly tweaks.