MMOBBSのCGI開発管理スレッド
[8:(>▽<)さん (07/12/27 01:05 ID:81vpo8qN0)]
いつもMMOBBSを楽しく利用させていただいています。
管理大変そうですが頑張ってください。
少しでも助けになれば、と思い情報提供です。(*'-')ノ
>>3
1-2についてですが、MaxMind GeoIP(Free版のGeoLiteでも可)はどうでしょうか。
(詳細はgoogle先生に聞いてください、あえてリンクは張りません)
仕組みとしてはこんな感じです。
・IPアドレスを数値化する(x.y.z.w→x*16777216+y*65536+z*256+w)
・MaxMindが配るCSVには数値化したIPがXからYまではどの国、という情報が多数のレコードとして入っている
- RDBが利用できるなら上記CSVをつっこんでおいてwhere betweenなselectクエリ一発で国が取得できる
- CSVのまま利用するならCなりperlなりで↑を検索するインターフェースがある(ただし負荷は微妙に高い?)
いちおうバイナリ形式配布とかもあるみたい、こっちの速度は未測定
私の場合は(仲間内コンテンツですが)レンタル鯖のアカウントでmysql DBにも接続が可能だったため
上記のRDB利用パターンで制限を行っています。
# DNS引いた感じだとウチとmmobbsさん同じ業者さんみたいだし使えるのでは?と思います。
# よろしければ更新スクリプトとかサンプルプログラムとかもお渡しできますよー。
# phpなのでソノママとは行かないと思いますが。
掲示板で要求される負荷に耐えられるか?という意味での実績は残念ながらありません。
RDB利用の場合、(RDBと近ければ)遠隔DNSBLを参照するよりは確実に速いです。
ローカルにDNSBLを独自構築してアクセスするのとどっちが軽いか?となると微妙なところです。
(私の自宅実験環境へのアクセス程度だとローカルDNSBLもGeoIPも差が出ないもんで実測できません... orz)
ちなみにCSVの中身はこんな感じです(CN部分を抜粋)
"61.128.0.0","61.161.83.67","1031798784","1033982787","CN","China"
"125.64.0.0","125.98.255.255","2101346304","2103640063","CN","China"
"221.0.0.0","221.12.191.255","3707764736","3708600319","CN","China"
ざっと見た感じ、アカウントハック総合対策スレ等にかかれるホスト名の所属IPについては
(一部を除いて)このあたりにきちんと引っかかっているようです。(一部"US"との判断もある)
read.cgi ver5.26 + n2 (02/10/01)