If a situation called for it, you could find out remotely using snmpwalk [or the SNMP protocal in general]. An example is below:
snmpwalk -Os -c <snmp community string> -v1 <hostname> sysDescr.0
OUPUT: sysDescr.0 = STRING: Linux example.hostname.com 2.6.32-358.23.2.el6.x86_64 #1 SMP Sat Sep 14 05:32:37 EDT 2013 x86_64
The key to the reliability is whether SNMP is setup correctly in your environment, all hosts have snmp running with proper community strings setup.