You will want to use a Geo Intelligence Data provider. The data for the mod_geoip Apache module (I believe) is provided by MaxMind, but their are more accurate/reliable solutions depending on your budget and needs.
Data Providers include:
Digital Envoy - Considered the industry leader
All providers have multiple levels of data available including IP domain, connection speed, time zone, etc. if you ever needed to filter or change content on more granular data. Depending on the provider, there are multiple ways to access the data whether it be a flat file you load into your own db, in-house servers through an API, or web-services.
You will want to be sure to get something that is updated on a regular (i.e. weekly) basis as IP's change location quite frequently.