You may be overthinking the problem.
If you distribute a client to them, you can just query the OS directly. The best route is likely to ask users for their specs and query silently; they are unlikely to put forth the (rather substantial) effort to fabricate data if they don't know you are collecting it.
On Windows, you could query the ...
If the server is running on a LAN address per RFC 1918 and you are not using NAT RFC 2663, this shouldn't even be an issue. NAT is what does the port forwarding.
To increase the security you can simply block all externally incoming connections.
If you would like to verify, you can use nmap to scan from the public network.