This will iterate through multiple SQL Servers if run is SSMS and will print out the port number and SQL version.
Ideally, set the option in SSMS to display server name for multi-server queries to off, it makes for a cleaner result.
If the server cannot connect to a database (the DB is registered and server does not exist/access is denied), SQL will output some error, this is no big deal.
There seems to be an issue with clsueters, it usually works; however, sometime it cannot locate the registry for the registered server. This is unique to clustering and likely has to do with what node owns what resources.
I would guess, if TCP/IP were disabled for a server, it would also produce an error, as no port number would have been set.