hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

19年8月18日(Sun) 21時08分
TOP » UsersWiki » nao-pon » blog » 2017-02-14

RSS of nao-pon/blog
Tue 14 Feb 2017
 

XOOPS サイトの IPv6 対応の私的メモ anchor.png

hypweb.net の Web サーバーを IPv6 対応しました。
IPv6 でアクセスすると左上に IPv6 の文字が表示されます。

hypweb_IPv6.png

しかし、XOOPS 固有の問題がありちょこちょこ修正しています。

このページはその私的メモで、随時更新していきます。

Page Top

施した対策 anchor.png

  • online テーブルの online_ip カラムの文字数拡張(39文字)
  • protector モジュールの class/protector.php ip_match() の IPv6 対応(後述)
  • protector モジュールの一般設定 信頼できる IP に ^::1$ と ^fe80:: を追加
  • protector モジュールの管理画面の BadIP のリストアップとその保存処理で、有効時間とIPのセパレーターを ":" から "-" に変更(trust/modules/protector/admin/index.php)
  • d3forum の posts テーブルの poster_ip, modifier_ip カラムの文字数拡張(39文字)
  • xpWiki モジュールの counter, tb テーブルの ip カラムの文字数拡張(モジュールアップデートスクリプトにて対応完了)
Page Top

ToDo anchor.png

  • protector の BadIP の登録で IPv6 のプレフィクス長を管理画面で指定できるようにする。
Page Top

詳細メモ anchor.png

Page Top

class/protector.php ip_match() anchor.png

366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
function ip_match( $ips )
{
    foreach( $ips as $ip => $info ) {
        if( $ip ) {
            $ip = strtolower($ip);
            switch( substr( $ip , -1 ) ) {
                case '.' :
                case ':' :
                    // foward match
                    if( substr( @$_SERVER['REMOTE_ADDR'] , 0 , strlen( $ip ) ) == $ip ) {
                        $this->ip_matched_info = $info ;
                        return true ;
                    }
                    break ;
                case '0' :
                case '1' :
                case '2' :
                case '3' :
                case '4' :
                case '5' :
                case '6' :
                case '7' :
                case '8' :
                case '9' :
                case 'a' :
                case 'b' :
                case 'c' :
                case 'd' :
                case 'e' :
                case 'f' :
                    // full match
                    if( @$_SERVER['REMOTE_ADDR'] == $ip ) {
                        $this->ip_matched_info = $info ;
                        return true ;
                    }
                    break ;
                default :
                    // perl regex
                    if( @preg_match( $ip , @$_SERVER['REMOTE_ADDR'] ) ) {
                        $this->ip_matched_info = $info ;
                        return true ;
                    }
                    break ;
            }
        }
    }
    $this->ip_matched_info = null ;
    return false ;
}


Post a new comment

Subject
guestname
Body

Go to richer form

Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 1520, today: 2, yesterday: 1
Princeps date: 2017-02-14 (Tue) 17:14:40
Last-modified: 2017-02-14 (Tue) 21:57:55 (JST) (914d) by nao-pon
このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

Register now! | Lost Password?



メインメニュー
UsersWiki メニュー
付箋メニュー
Fusen(Tag) menu 
Tag Editor
Color: BG:
Name:  Connect line ID:
 
ブックマーク
Please log in to use it.
[Login]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 51 人がオンライン中 :-)
(UsersWiki : 9 人)

登録ユーザ: 0 & ゲスト: 51

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 4612


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報