GeoIP geoip_region_by_name の使用について

  • ページ: BugTrack
  • 投稿者: hotline?
  • 優先順位: 普通
  • 状態: 却下
  • カテゴリ:
  • 投稿日:
  • バージョン:

メッセージ

インストール時に気がついたのですが、GeoIPの判定に、 geoip_region_by_name() を利用している為に、 有料にて配布されているGeoIPRegion.datを期待し参照しているようです。 http://www.maxmind.com/en/region

アクセス判定目的に国別のコードしか利用しないのであれば、 geoip_country_code_by_name() にすれば、 無償で配布されている、GeoIP.datになり、 多くの方が利用出来ると思うのですがいかがでしょう?

--- a/wiki-common/lib/main.php  Wed Apr 10 14:21:47 2013 +0900
+++ b/wiki-common/lib/main.php  Wed Apr 10 15:23:10 2013 +0900
@@ -117,7 +117,7 @@
        $country_code = $_SERVER['GEOIP_COUNTRY_CODE'];
 }else if (function_exists('geoip_db_avail') && geoip_db_avail(GEOIP_COUNTRY_EDITION) && function_exists('geoip_region_by_name')) {
        // それでもダメな場合は、phpのgeoip_region_by_name()からGeolocationを取得
-       $geoip = geoip_region_by_name($remote_addr);
+       $geoip = @geoip_region_by_name($remote_addr);
        $country_code = $geoip['country_code'];
↑この辺り

  • @を関数の前につけるのは、エラーを消すためですね。あまり提案事項と修正方法が一致していないように見えます。
    PukiWiki Adv.では@を関数につけることは動作が重くなるため禁じています。このため、この提案は却下です。(個人的には、独自ドメインを使っている場合、Cloud Flareを使うことを推奨します。この鯖ではCloud Flareの出力するGeoIPを使用しています。) -- Logue?