IP to Country
Problem
Having an IP address, how to figure out where (in which country) it is located?
Solution
There are several sites that provide all kinds of information about a host (e.g. Geotool, GeoBytes, etc). We could write a scraper but there are some problems with this approach: some sites limit the number of free accesses (e.g. Geotool presents a captcha after a while); if the layout changes, you need to rewrite the scraper.
It would be better to use a web service. That’s how I found geoPlugin, which provides some free web services, including JSON too.
Examples:
- look up your own host
- look up a host of Google
I made a simple Python script for it, available here.
Offline solution
“If high accuracy is not a concern, MaxMind’s free databases (Country / City) could offer an off-line solution. It has a Python API.” — Avaris
Credits
Thanks to Ashwini Chaudhary who pointed me towards geoPlugin.