A lot of groups I work with use GeoIP based decisions in their applications. Sometimes for basic features like guessing a timezone, or choosing the best mirror to load content off of. In other situations the code is handling things a bit more serious, like pricing selections, or billing providers (some of whom will not be tricked by hacks within your application).
I've seen a couple of choices made when it comes to testing these features:
- Hacking the code
This one is pretty easy for developers, you just throw in a few hooks to convince the application that you're really somewhere else. This works, but it adds complexity to your application, and can leave you testing your hacks, rather than the application itself. This level of testing also requires that the developer be involved, since presumably QA doesn't have access to add these sorts of things to your application.
- Free Proxies
These work, usually. Free proxies often provide limited feature sets, availability, or ad injection. As a result of their limited resources, they often end up being a bit slow, and prone to outages. I've used these for a while, and often find myself frustrated a the end. There's a couple out there decent from speed and stability, but they wont let you fill out POST forms.
- Pray
I'm a pretty kick ass developer, it should work... Right?
- Tor
A great anonymizer network, but quite slow. You're also left with whatever exit node it assigns to you.
- Commercial, single site proxies
I've found a few proxies out there, generally aimed at people who want to pretend they're in a given country for content reasons. Either the US for Hulu, the UK for BBC stuff, etc. These ones generally reside in countries where there's content you want, and charge you according to the high bandwidth they expect you to use. You could buy a bunch, but now you're in serious money country, still without a proxy in less attractive locations.
One final element of complexity is that applications often end up with hard coded IP addresses for admin access. You need to get outside that range to test even regular features like authentication.
Not being too happy with these choices, I've started building up my own little collection of proxies. I've currently got one running in the US, UK, and France. I'm waiting for my server to finish provisioning in Argentina, Germany, and The Netherlands. Finally, I'm still negotiating with providers in New Zealand, Australia, and Japan.
If you're interested in getting access drop me a line (paul at preinheimer dot com), I've got rates aimed at individuals and corporations. I am of course willing to work with you if you have specific needs for a proxy in a different country.