5 ms·
Go-based freegeoip.net now supports SSL for its API
- kyberias 13y agoWhy is it important what programming language was used in implementing a given web service+
- fiorix 13y agoBecause freegeoip.net is open source and has always been a personal research project. First versions were written in Python, initially running on GAE, then twisted+cyclone, and currently in Go.
- russross2 13y agoBecause it is open source. If I am going to start using a service, I like to know if can fix bugs myself easily should the need arise.
- jamesaguilar 13y agoThis is a site for hackers, a lot of whom build things on the web. It's useful to get a sense of what tools are in vogue and/or complete enough to do certain projects.
- deleted 13y ago[deleted]
- Aloisius 13y agoBecause anything that mentions Go gets more Karma?
- supergrilo 13y agoGreat job! Finally a perfect geoip database with api application. :)
- fiorix 13y agoThanks!
- realrocker 13y agoWell written code except around //Check Quota . Scope for better readability there. Thanks!
- fiorix 13y agoThere's definitely room for improvement there, thanks for pointing that out.
- emptystacks 13y agoFor those unfamiliar, this free usage limit is much more relaxed than Google's Geocoder, which limits you to 2,500 free requests per day. https://developers.google.com/maps/documentation/geocoding/#Limits https://developers.google.com/maps/documentation/geocoding/#...
- slig 13y agoGoogle's API is for a very different thing: it converts an address to a lat/long and vice-versa.
- moatra 13y agoGoogle offers three geocoders: The first[1] converts ip to location, and allows 100 free queries per day. The second[2] converts physical addresses to location as part of it maps JavaScript api, and is part of its 25,000 free requests/day. The third[3] is its http version of geocoding, which also converts physical addresses to locations or visa-versa. This api has the 2,500 req/day limit. [1]https://developers.google.com/maps/documentation/business/geolocation/ https://developers.google.com/maps/documentation/business/ge... [2]https://developers.google.com/maps/documentation/javascript/geocoding https://developers.google.com/maps/documentation/javascript/... [3]https://developers.google.com/maps/documentation/geocoding/ https://developers.google.com/maps/documentation/geocoding/
- derfclausen 13y agoAlso note that Google's geocoder can only be used for results to be displayed on a Google map (mentioned in emptystacks's link, also section 10.1.1 (g): https://developers.google.com/maps/terms https://developers.google.com/maps/terms)
- weakwire 13y agoyou can fork it and run it on your own servers without the limit..
- polvi 13y agoThese guys might consider allowing people to pay for more requests. Even with the source, it would be easier for some people to just pay you, and you can still keep everything open source.
- pieterhg 13y agoI don't think they're allowed to charge for it, since they're using the MaxMind database (see https://www.maxmind.com/en/partner https://www.maxmind.com/en/partner)
- fiorix 13y agoNo plans to see anything there. It's a community supported service (volunteer donations only) and will always be. Also, although it currently uses MaxMind's GeoLite, this system has absolutely no affiliation with any company.
- ivanbrussik 13y agoNICE! I've been looking for something like this to interface with Piwik
- zapt02 13y agoPiwik already has GeoIP with the same database (Maxmind) built in.
- tlercher 13y agoNo IPv6 support?
- hgfischer 13y agoNice job!! The source code is very well written!
- fiorix 13y agoThank you!
- stock_toaster 13y agofiorix, I am curious why you are using sqlite/redis as a store for the geoip data, instead of using cgo in conjunction with libGeoIP. Was it to enable updates to the geoip data if you get corrections (crowdsourced or otherwise)?
- fiorix 13y agoSome of the early versions used libgeoip, but the database has changed many times over time; it started with MaxMind data, then switched to ipinfodb.com, then ip2location.com came into the mix, and currently is back to using MaxMind again with a few tweaks. The idea is to be free to change to whatever is more suitable whenever is necessary... Redis was initially used in the Python version (twisted+cyclone) to share usage quotas between multiple instances (one per cpu), and ended up in the Go version just because; actually, it could use a map or something, but I'd have to implement the ttl part... In other words, it's mostly for historical reasons.
- manishsharan 13y agoIs this a REST API over Maxmind db ?
- kintamanimatt 13y agoAccording to the footer, it appears to be so.
- zapt02 13y agoThis needs more visibility. There should be clear indication on the page that this is just an API for the freely available MaxMind db's.
- fiorix 13y agoIt's not. As I explained elsewhere it currently uses MaxMind but there's no affiliation with the company and I might eventually switch to any other db as did many times in the past.
- nodesocket 13y agoGitHub issues as their best. https://github.com/fiorix/freegeoip/issues/22 https://github.com/fiorix/freegeoip/issues/22 Thanks guys for implementing it.
- disclosure 13y agoSee also https://dazzlepod.com/ip/8.8.8.8.json https://dazzlepod.com/ip/8.8.8.8.json w/o hard limit; replace 8.8.8.8 with any IP.
- karolisd 13y agoThanks, I've been looking for a Geo-IP API that supports both JSONP and SSL. Perfect.
- fiorix 13y ago;)