golangでgeoipできるの作ってみた
2013-10-17 / Go
golangの勉強がてら、
ip2c
というものを作ってみた。まだまだ調整中なんだけど、とりあえず単体で動く状態になったので。
MAXMIND社が提供しているGeoIPのデータベースを元に、IPから国がわかるツール。
GeoIPのデータベースファイルを参照して国の情報を取得する辺りはライブラリを使っているので、実際にコード書いたとこは、コマンドラインオプションの辺りをちょっとだけ。
使い方
GeoLite Free Downloadable Databases « Maxmind Developer Site
↑こちらのページから、、GeoLite Country のバイナリデータを持ってくる。適当に解凍しておいて、
ip2c –db maxmindのデータベース IPアドレス
と実行したら国が出力される。指定しなくても良いんだけど、その時は環境変数から取得するか、カレントディレクトリを参照するか、実装してみた。
今後やろうと思うこと
作ろうと思ったきっかけが、サイトのログにあるIPから国を集計したいからなので、パイプとかからIPの情報を渡せるようにしたい。
標準入力をシーケンシャルに対応していくだけでできそうな気がする。
あと、作ってみて思ったんだけど、ip2cのcはCountryのつもりだったけど、Cityもあるし、ちょっとわかりにくいかなと思ったり。
出力する情報も細かく指定できた方が良いかな。
そんな感じ。