/** * 共通チェック */ private function log_common_check() { // 認証中のユーザ名 $username = Auth::check_auth(); // 認証済の場合 if ($this->config['auth_nolog'] && !empty($username)) { return null; } // タイムスタンプ $utime = UTIME; // リモートIPを取得 $ip = Utility::getRemoteIp(); if (isset($this->config[$this->kind]['nolog_ip'])) { // ロギング対象外IP foreach ($this->config[$this->kind]['nolog_ip'] as $nolog_ip) { if ($ip === $nolog_ip) { return null; } } } $rc = array(); $field = self::set_fieldname(); foreach ($field as $key) { switch ($key) { case 'ts': // タイムスタンプ (UTIME) $rc[$key] = (int) $utime; break; case 'ip': // IPアドレス $rc[$key] = $ip; break; case 'host': // ホスト名 (FQDN) $rc[$key] = gethostbyaddr($ip); break; case 'auth_api': // 認証API名 //$obj = new auth_api(); //$msg = $obj->auth_session_get(); $rc[$key] = isset($msg['api']) && !empty($username) ? 'plus' : null; break; case 'local_id': $rc[$key] = isset($msg['local_id']) ? null : $msg['local_id']; break; case 'user': // ユーザ名(認証済) $rc[$key] = $username; break; case 'ntlm': // ユーザ名(NTLM認証) if (self::netbios_scope_check($ip, gethostbyaddr($ip))) { $obj_nbt = new NetBios($ip); $rc[$key] = $obj_nbt->username; unset($obj_nbt); } else { $rc[$key] = null; } break; case 'proxy': // Proxy情報 $obj_proxy = new ProxyChecker(); $rc[$key] = $obj_proxy->is_proxy() ? $obj_proxy->get_proxy_info() . '(' . $obj_proxy->get_realip() . ')' : null; unset($obj_proxy); break; case 'ua': // ブラウザ情報 if (isset($_SERVER['HTTP_USER_AGENT'])) { $rc[$key] = $_SERVER['HTTP_USER_AGENT']; } else { if (isset($_SERVER['ALL_HTTP'])) { $rc[$key] = preg_match('/^HTTP_USER_AGENT:(.+)$/m', $_SERVER['ALL_HTTP'], $regs) ? $regs[1] : null; } } break; case 'del': // 削除フラグ // 更新時は、削除されたか? $rc[$key] = $this->kind === 'update' && Factory::Wiki($this->page)->has() ? null : 'DELETE'; break; case 'sig': // 署名(曖昧) $rc[$key] = self::log_set_signature($utime); break; case 'file': // ファイル名 $rc[$key] = $this->kind; break; case 'page': case 'cmd': $rc[$key] = $this->page; break; } } return $rc; }
function is_proxy() { $obj = new ProxyChecker(); $ip = $obj->get_realip(); if (!empty($ip) && MyNetCheck($ip)) { return false; } return $obj->is_proxy(); }