OK, so I tried implementing this, http://ipaddressextensions.codeplex.com/.
It is displaying the output as:-
127.0.0.1 RESERVED ZZ
What on earth is this “RESERVED” and “ZZ”? It should be displayed as “INDIA IN”.
The IP address is of the local host. All right, but what about the country name and country code? Why won’t they display correctly? What do I need to change in my code?
When you are testing from home, both server and user are one (your PC). So you can’t expect it to show the country as the IP address for IIS is a self address.
Your code seems to be fine. Also you can use a free ASP.NET supporting host to try your website online. There are many like HelioHost, 0000free, etc.
Regarding the edit part of your question, if you are using different versions of the site for each country then wouldn’t be using a switch better.
I think it does look neater.