function is_proxy()
{
    $obj = new check_proxy();
    $ip = $obj->get_realip();
    if (!empty($ip) && MyNetCheck($ip)) {
        return false;
    }
    return $obj->is_proxy();
}
Exemple #2
0
/**
 * 共通チェック
 */
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;
}