CountryFilter の特長は以下の通りです。
例) import autobalance import tk_punish import CountryFilter autobalance.init() tk_punish.init() CountryFilter.init()
例) {bf2}/Admin/standard_admin/CountryFilter.py {bf2}/Admin/standard_admin/PurePythonGeoIP.py {bf2}/GeoIP.dat
例1) # 2文字の国コードで表示する 例) JP cf_country_print_mode = 'code' 例2) # 3文字の国コードで表示する 例) JPN cf_country_print_mode = 'code3' 例3) # 正式な国名で表示する 例) Japan cf_country_print_mode = 'name'
例) # プレーヤの接続を許可した時に表示するメッセージのフォーマット # %(name)s はプレーヤの名前に置きかわります # %(country)s は国名に置きかわります # cf_allow_message = '' と設定するとメッセージを表示しません cf_allow_message = '%(name)s (Country: %(country)s) was allowed to connect.' # プレーヤの接続を拒否した時に表示するメッセージのフォーマット # %(name)s はプレーヤの名前に置きかわります # %(country)s は国名に置きかわります # cf_deny_message = '' と設定するとメッセージを表示しません cf_deny_message = '%(name)s (Country: %(country)s) was rejected by CountryFilter.' # メッセージを表示しない国名を指定します # 国名の指定方法は cf_allow_from, cf_deny_from と同じです cf_message_exclude_from = ''
cf_allow_from, cf_deny_from, cf_order を使ってプレーヤの接続を制限することができます。なお、2文字の国コードで指定してください。基本的に、Apache の mod_access モジュールの設定方法と同じです。以下の URL を参照してください。
http://httpd.apache.org/docs/mod/mod_access.html
cf_allow_from で接続を許可する国名を指定します。指定できる値は、'all', '', '--', '2文字の国コード' のどれかです。複数指定する場合はスペースで区切ります。'all' を指定すると全ての国名を許可します。'' (空文字列) を指定すると何もしません。'--' は国名が不明の場合です。LAN 内から接続するとIP アドレスが 192.168.xxx.xxx となり、国名を割り出すことができないため '--' (国名不明)と判断されます。そのため LAN からのアクセスを許可するには '--' を指定する必要があります。
例1) # 全ての国名を許可 cf_allow_from = 'all' 例2) # JP, US, LAN を許可 cf_allow_from = 'JP US --' 例3) # 何もしない cf_allow_from = ''
cf_deny_from で接続を拒否する国名を指定します。指定できる値は、cf_allow_from と全く同じです。
cf_order でデフォルトのアクセス状態と、許可/拒否のフィルタが評価される順番を制御します。cf_order の値は 'deny,allow' または 'allow,deny' のどちらかでなければなりません。デフォルトは 'deny,allow' です。
例1) # deny,allow の順番で評価されます # アクセスはデフォルトで許可されます cf_order = 'deny,allow' 例2) # allow,deny の順番で評価されます # アクセスはデフォルトで拒否されます cf_order = 'allow,deny'
以下に代表的な使い方の例を示します。
例1) # 全ての国を許可する(デフォルト) cf_order = 'deny,allow' cf_deny_from = '' cf_allow_from = 'all' 例2) # JP と US と LAN のみ許可してそれ以外は拒否 cf_order = 'deny,allow' cf_deny_from = 'all' cf_allow_from = 'JP US --' 例3) # JP のみ拒否してそれ以外は許可 cf_order = 'allow,deny' cf_allow_from = 'all' cf_deny_from = 'JP'
国名コードについては以下のページを参照してください。
http://www.maxmind.com/app/iso3166
国名変換の精度を保つためには定期的に GeoIP.dat を最新のデータに置き替える必要があります。以下の URL から最新の GeoIP.dat をダウンロードして更新してください。
上記 URL から GeoIP.dat.gz をダウンロード、解凍して {bf2}/GeoIP.dat にコピーしてください。
感想、要望、アイデア、バグ報告等を、以下のフォーラムで教えてください。
色付きのソースコードはこちらから参照できます。
Guwashi