Latest commit 0e7907b
Nov 13, 2014
New version of the freegeoip web server. Changes: - Configuration file is gone. All switches are in the command line now. - The updatedb script is gone. Now the server does some background job to download and maintain the database file up to date. - Auto-reload of the database. If you update or overwrite the database file the server reloads it automatically with no service interruption. - Single file front-end. No longer serving any JS or CSS, using it all from the cloud. jQuery is gone and the front-end is based on AngularJS and Bootstrap only. - No more DNS contention. If you're running your own server and need that then use something external, like dnsmasq. - Database date is exposed to clients in the X-Database-Date header. - Preliminary IPv6 support. Closes #21. - Localized country, region and city names. The server uses the Accept-Language header to determine the language of the response. - Official docker support. See the Dockerfile for details. - New package freegeoip for Go. All the above and more tidbits in a Go package that other programs can leverage. This version of the freegeoip web server is backwards compatible with the previous version. The HTTP API is virtually the same. Features of the freegeoip Go package: - Database API that allows any Go program to do IP geolocation lookups. It supports both local and remote databases. - Background goroutine to download and maintain the database up to date. - Background goroutine for monitoring the database file and auto-reloading on demand. Uses fsnotify. - An http.Handler object that any net/http server can use to serve IP geolocation lookups. Supports CSV, XML, JSON and JSONP out of the box. - Extensible encoder interface to support other output formats, or to implement custom responses for the http handler. - Decent test coverage.