示例#1
0
/**
 * ユーザ名推測
 */
function logview_guess_user($data, $guess)
{
    // 確定的な情報
    $user = isset($data['user']) ? $data['user'] : '';
    $ntlm = isset($data['ntlm']) ? $data['ntlm'] : '';
    $sig = isset($data['sig']) ? $data['sig'] : '';
    $now_user = log::guess_user($user, $ntlm, $sig);
    if (!empty($now_user)) {
        return $now_user;
    }
    // 見做し
    if (!isset($data['ua'])) {
        return '';
    }
    if (!isset($guess[$data['ua']])) {
        return '';
    }
    // USER-AGENT が一致したデータがあるか
    if (!isset($data['host'])) {
        return '';
    }
    $user = '';
    $level = 0;
    // とりあえずホスト名は完全一致
    foreach ($guess[$data['ua']] as $_host => $val1) {
        list($sw, $lvl) = log::check_host($data['host'], $_host, $level);
        // ホスト名の一致確認
        if (!$sw) {
            continue;
        }
        // ホスト名が一致しない
        // UA が等しく、同じIPなものの、複数ユーザまたは改変した場合は、複数人分出力
        foreach ($val1 as $_user => $val2) {
            if (!empty($user)) {
                $user .= ' / ';
            }
            $user .= $_user;
        }
    }
    return $user;
}