- blogs:
- cles::blog

GeoLite2 用の CSV から GeoLite Legacy 用のデータベースファイルを生成する



GeoIP-update がエラーを吐いているをずっと放置していましたが、エラーの原因を調べてみたところ、現行の Legacy Database は更新が停止されていました。現在はウェブから 2018 年 3 月版のみがダウンロードできる状態で、このファイルも 2019 年 1 月にはウェブサイトから削除されるというスケジュールになっているようです。
GeoLite は後継版の GeoLite2 の提供が始まっているので、こちらに移行して欲しいようですが、今使っている全てのアプリが GeoLite2 に対応しているわけでもないというところが、頭の痛いところです。
† 延命スクリプトを書いてみる
ふと、GeoLite Legacy のデータベースは単純なので、無理やり GeoLite2 用の CSV から GeoLite Legacy の .dat を作ってみることはできないだろうかと思ってちょっと組んでみたら、1~2時間くらいで完成してしまいました。もしかしたら、同じように移行で悩んでいる人もいるかもしれないので、GitHub にスクリプトをアップしておきました。
実際の .dat へのコンバートは mteodoro/mmutils に同梱されている csv2dat.py を使っています。GeoLite Legacy はどうやら国の種類が増やせないらしく、コソボ (XK) のデータの部分で以下のようなエラーを吐いてしまうので、この部分を回避するために少しパッチを当てたものを使っています。今後、国が増えたりするとパッチの部分を増やす必要がでてきますね。
† 導入方法
Python 2.7 にパスが通っていれば、こんな感じで導入や DB 生成ができるはずです。
標準で導入されている dat と生成された dat の比較は geoiplookup で行うことができます。
最後に OS 標準の .dat のリンクを書き換えておけば導入は完了です。
データは1ヶ月に1回しか更新されないので、たまに手動で実行するくらいで大丈夫なはずです。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10312
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110792)
3 . 年次の人間ドックへ(110384)
4 . 2023 年分の確定申告完了!(1つめ)(109932)
5 . 三菱鉛筆がラミーを買収(109831)