Some notes:
Make sure you have a unique clustered index on IPLocationDB_Location(location)
Make sure you have a unique nonclustered index on IPLocationDB_Region(CountryCode, RegionCode) INCLUDE(RegionName)
You should be able to remove the DISTINCT from the query. It is costing you performance and it should not be necessary.