refactored into an extension method: GetClientIPAddress