Exemple #1
0
 protected static function setSID($SID)
 {
     if (self::$IPlevel) {
         // Session <-> IP binding (IPv4 only)
         $IPs = '127.0.0.1,' . $_SERVER['REMOTE_ADDR'] . ',' . (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : '') . ',' . (isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : '');
         preg_match_all('/(?<![\\.\\d])\\d+(?:\\.\\d+){' . (self::$IPlevel - 1) . '}/u', $IPs, $IPs);
         sort($IPs[0]) && ($IPs[0] = array_unique($IPs[0]));
         $IPs[1] = explode('.', $_SERVER['REMOTE_ADDR'], self::$IPlevel + 1);
         unset($IPs[1][self::$IPlevel]);
         $IPs = implode('.', $IPs[1]) . ',' . implode(',', $IPs[0]);
     } else {
         $IPs = '';
     }
     self::$SID = md5($SID . '-' . $IPs);
 }