You would have to get this information from the Gateway, which would probably require getting a GatewayContext.
You would need to use Javascript to get this, I don't know the exact code.
Good luck. Browsers purposefully prevent access to the client machine for security. Why exactly do you need this information? The clients OS should make zero difference for Perspective.
The first 4 I can understand, and honestly, this sounds like a job for a custom component.
GatewayContext is documented, but note that it is an interface, not a class. The one Implementation is an internal resource and if you use it, do not expect any support.
You obtain the one implementation (it uses the singleton pattern) with the static method .get(), like so:
from com.inductiveautomation.ignition.gateway import IgnitionGateway
context = IgnitionGateway.get()
Then, you can use the interface methods on context.
But again, don't ever bother IA support with anything you get, or any breakage you cause.