/** * アクションプラグイン処理 */ function plugin_log_whois_convert() { global $log; global $log_ua; global $_log_whois_msg; if (!$log['guess_user']['use']) { return ''; } // 推定ユーザ処理が無効の場合 $filename = log::set_filename('guess_user', ''); // ログファイル名 // ログの読み込み if (!file_exists($filename)) { return ''; } $src = @file($filename); $guess = array(); foreach ($src as $_src) { $data = log::table2array($_src); // 0:ua 1:host 2:user $guess[$data[0]][$data[1]][$data[2]] = ''; } $host = log::ip2host(); if (!isset($guess[$log_ua][$host])) { return ''; } $uname = ''; foreach ($guess[$log_ua][$host] as $user => $val) { $uname .= !empty($uname) ? ',' . $user : $user; } return sprintf($_log_whois_msg['msg_whois'], $uname); }
/** * 共通チェック */ function log_common_check($kind, $page, $parm) { global $log; global $log_ua; $username = auth::check_auth(); // 認証済の場合 if ($log['auth_nolog'] && !empty($username)) { return ''; } $utime = UTIME; $obj_log = new log(); $obj_proxy = new check_proxy(); $ip = $obj_log->getip(); $hostname = $obj_log->ip2host($ip); $proxy_info = $obj_proxy->is_proxy() ? $obj_proxy->get_proxy_info() . '(' . $obj_proxy->get_realip() . ')' : ''; unset($obj_log); unset($obj_proxy); if (isset($log[$kind]['nolog_ip'])) { // ロギング対象外IP foreach ($log[$kind]['nolog_ip'] as $nolog_ip) { if ($ip == $nolog_ip) { return ''; } } } // NetBIOS でのチェックを実施 if (netbios_scope_check($ip, $hostname)) { $obj_nbt = new netbios($ip); $ntlm_user = $obj_nbt->username; unset($obj_nbt); } else { $ntlm_user = ''; } // 更新時は、削除されたか? if ($kind == 'update') { $delete_flag = file_exists(get_filename($page)) ? '' : 'DELETE'; } else { $delete_flag = ''; } // 署名の収集 $signature = log_set_signature($kind, $page, $utime); $rc = array(); $field = log::set_fieldname($kind); $obj = new auth_api(); $msg = $obj->auth_session_get(); foreach ($field as $key) { switch ($key) { case 'ts': // タイムスタンプ (UTIME) $rc[$key] = $utime; break; case 'ip': // IPアドレス $rc[$key] = $ip; break; case 'host': // ホスト名 (FQDN) $rc[$key] = $hostname; break; case 'auth_api': // 認証API名 //$obj = new auth_api(); //$msg = $obj->auth_session_get(); $rc[$key] = empty($msg['api']) && !empty($username) ? 'plus' : $msg['api']; break; case 'local_id': $rc[$key] = empty($msg['local_id']) ? '' : $msg['local_id']; break; case 'user': // ユーザ名(認証済) $rc[$key] = $username; break; case 'ntlm': // ユーザ名(NTLM認証) $rc[$key] = $ntlm_user; break; case 'proxy': // Proxy情報 $rc[$key] = $proxy_info; break; case 'ua': // ブラウザ情報 $rc[$key] = $log_ua; break; case 'del': // 削除フラグ $rc[$key] = $delete_flag; break; case 'sig': // 署名(曖昧) $rc[$key] = $signature; break; case 'file': // ファイル名 $rc[$key] = $parm; break; case 'page': case 'cmd': $rc[$key] = $page; break; } } return $rc; }