in reply to Geographic lookup via IP

You might find DNS LOC records useful. You can access these records using Net::DNS::RR::LOC.