I wrote a GeoIP plugin. It uses the GeoIP python library from maxmind http://www.maxmind.com/app/python
So you have to install that.
then: !geoip will spit out city, region_name, country_name
I have it on github: https://github.com/krsanky/b3-geoip
PS. There is a python only geoip library that I'm pretty sure I could get to work if installing the Maxmind one is not an option.
======== How to Install ============
install Maxmind's GeoIP stuff. http://www.maxmind.com/app/python Both the C library and the python bindings. (some linuxes prob. have packages for them.)
Get the free City data file: http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz gunzip it and put it somewhere. Mine is at /usr/share/GeoIP/
Put the full path to the above file into plugin_geoip.xml
Put geoip.py in your extplugins folder.
Put plugin_geoip.xml into the extplugins/conf folder.
Add to your b3.xml (modify according to where you put it on your system.)