The long and the short of this is that we use a 3rd party to retrieve addresses from the PAF database (and similar for non-UK addresses). They need the client IP address to deduce what sort of addresses (ie: British/Irish/Canadian/Amoeboid-Zingat'ularian) to default the search to. We pass this traffic through a relay written as an MVC controller [HttpPost] action, and inject the authentication on the server, for security reasons.
For our customers that have our software hosted on Azure, this is easy, as the traffic between MVC controller action and the 3rd party's javascript will pass through an internet-facing firewall, and the IP gained using Request.ServerVariables["REMOTE_USER"] will be good enough. BUT what if they have our software installed on premise? Then, isnt it possible that the IP this method gives me is one that only means anything to the local network?
If I could detect the difference, I could decide whether or not to send the IP: and therefore get the 3rd party to decide.