I believe that Adsense has a way to geotarget advertisers, but I've had zero experience with utilizing said functionality; researching this type of service isn't that difficult when using a
Search Engine.
Relying on GeoIP services could cost quite a bit of $$, as it takes a significant amount of time to manage these large IP databases; this will be especially true if you end up utilizing a service API (which often have resource limitations, and can throw 504 errors when you hit any hard limits imposed by the service provider).
There are quite a few GeoIP providers these days, such as
MaxMind (which is one of the oldest I've ever used), or
IP-API (which is what is in use in the UBB.threads 7.7 Control Panel).