Location lookups are a part of pretty much every app these days, but I constantly find myself searching for good data providers or services to give me what I need. Here is a list of some good ones, some of which I have used first hand. Hopefully this will help someone hours of Googling!
https://www.townslist.co.uk – UK town list service, updated regularly, Paid
http://www.sqldumpster.com/databases/geographic/ – Many geo databases, infrequent updates, Free
http://dev.maxmind.com/geoip/geoip2/geolite2/ – The daddy of location services, not cheap, but fast and pretty accurate. Their CSVs are massive and can be a nightmare to tailor to your app.
https://www.freemaptools.com/download-uk-postcode-lat-lng.htm – UK postcode database, last updated 2015, Free