ip2location.com is very accurate in my tests. You can download their database and make your own website with it, to remove their 20/day limit.