Sitecore provides all the tools necessary to easily personalize based on GeoLocation using their partner MaxMind's webservices. Not only can content authors easily set up personalization based on available GeoLocation data using the rules engine, the development team will be able to leverage the same data in any custom business logic. That being said, content authors, testers and developers need to be able to verify their work for different IP addresses and locations. This approach does not require special .Net code, custom pipeline processors or anything else that could complicate your solution.
Change the "Analytics.ForwardedRequestHttpHeader" value to "X-Forwarded-For" and you're all set. This will tell Sitecore to look at that header for IP address information instead of the IP that made the request.
1 2 3 4 5 6 7 8
<!-- ANALYTICS FORWARDED REQUEST HTTP HEADER Specifies the name of an HTTP header variable containing the IP address of the webclient. For use only behind load-balancers that mask web client IP addresses from webservers. IMPORTANT: If used improperly, this setting allows IP address spoofing. Typical values are "X-Forwarded-For" and "X-Real-IP". Default value: "" (disabled) --> <setting name="Analytics.ForwardedRequestHttpHeader" value="X-Forwarded-For" />
Setting your header
To make this easy I use the "Change HTTP Request Header" plugin for Chrome. Setting this up is pretty easy after you have it installed. First add a new header for "X-Forwarded-For", then add any presets that line up with your test cases - see the screen shots below. Once everything is setup you hit the handy dropdown in the plugin to select a preset or to input one on the fly.
So, that's it! Have fun testing your GeoLocation aware apps in Sitecore.