Is it possible to populate a set of custom fields with data from a postcode dataset?
There's an extension that provides this functionality called "CiviCRM Region Lookup".  It says it only works through CiviCRM 4.4; I'm not sure if anyone's tested it with a newer version, it might just work.

Note that it's not an easy process to set up for the very first time - but it's easier than writing custom code to handle this from scratch.  You may have follow-up questions, but that link should get you pointed in the right direction!