Could you not do...
if <is one of the countries we have a currency for> then <this> else <this>
...with the else being a default ($, £ €) if the country is not detected?
MaxMind allow you to download their GeoIP2 Country database which can be queried. There is a fee for that but I see they offer a free "lite" version at http://dev.maxmind.com/geoip/geoip2/geolite2/ in order get set up and test. They offer open source API packages for connecting to the database which I might be able to work out.
I will put the country drop-down to the client as that, to me, sounds like something I could at least attempt myself <cue sound of tearing hair out and being back on here within a few hours!> but if they insist on IP querying, is this something you could help me with?