I'm assuming that for any lookup, you know what country you're working with, otherwise two countries that use the same number range will conflict. (The only example I can think of offhand is that GB and CA codes might collide.)
Anyway, the one solution I don't see mentioned yet is SQL! I remember seeing somewhere around here a
SQL module that was lightweight and could do this.
SELECT airport
FROM maptable
WHERE postal_code_low < $mycode
AND postal_code_high > $mycode
AND country_code = 'GB'
Index the table by country_code, postal_code_low, and postal_code_high, and you're in business. All you have to do is load the data into the database.
Or, I've completely missed the point and wasted everyone's time.
--
Spring: Forces, Coiled Again!