<? if ( !defined("_INCLUDED_GLOBAL") ) die("Access Denied");		// [Security]Allow_url_fopen = On ?>
<?

	/*
		-. 웹메일 접근 IP 관리 등록/수정 폼 데이타 지정.

		ex)
			$view = setform_admin_web_allow_ip($row);

	*/
	function setform_admin_web_allow_ip($row)
	{
		global $G, $G_SYS, $TB, $AUTH;

		// default
		$view = $row;

		$view['m_id'] = input_value($row['m_id'], 1);
		$view['ip_netmask'] = input_value($row['ip_netmask'], 1);
		$view['ip_ipaddr'] = input_value($row['ip_ipaddr'], 1);
		$view['ip_memo'] = input_value($row['ip_memo'], 1);

		return $view;
	}	// function()


	function web_allow_ip_active($d_no)
	{
		global $TB;

		$q = "
			SELECT
				COUNT(*)
			FROM
				".$TB['WEB_ALLOW_IP']."
			WHERE
				d_no = '".$d_no."' 
			AND m_id = ''
			";
		$ip_cnt = db_get_one($q);

		$isexists = false;
		if ($ip_cnt > 0)
			$isexists = true;

		return $isexists;
	}	// function()

	function web_allow_ip_id_active($d_no, $m_id)
	{
		global $TB;

		$q = "
				SELECT
					COUNT(*)
				FROM
					".$TB['WEB_ALLOW_IP']."
				WHERE
					d_no = '".$d_no."'
					AND m_id != '' AND m_id = '".$m_id."'
				";

		$id_cnt = db_get_one($q);

		$isexists = false;
		if ($id_cnt > 0)
			$isexists = true;

		return $isexists;
	}	// function()


	function web_allow_ip_check($d_no, $ip)
	{
		global $TB;

		$_ex = explode('.', $ip);
		$ip_1 = $_ex[0].'.';
		$ip_3 = $_ex[0].'.'.$_ex[1].'.'.$_ex[2].'.';

		// 1개 IP, C 클래스 대역 체크
		$q = "
			SELECT
				COUNT(*)
			FROM
				".$TB['WEB_ALLOW_IP']."
			WHERE
				d_no = '".$d_no."'
				AND m_id = ''
				AND (
					(ip_ipaddr='".$ip."' AND ip_netmask='255.255.255.255')
					OR (ip_ipaddr LIKE '".$ip_3."%' AND ip_netmask='255.255.255.0')
					)
			";

		$ip_cnt = db_get_one($q);

		$isexists = false;
		if ($ip_cnt > 0)
		{
			$isexists = true;
		} else
		{
			// 그외 IP 대역중 앞자리 하나가 같은 경우만 체크.
			$q = "
				SELECT
					ip_ipaddr, ip_netmask
				FROM
					".$TB['WEB_ALLOW_IP']."
				WHERE
					d_no = '".$d_no."'
					AND m_id = ''
					AND (
						ip_ipaddr LIKE '".$ip_1."%'
						AND ip_netmask != '255.255.255.255'
						AND ip_netmask != '255.255.255.0'
						)
				";
			$ips = db_get_rows($q);

			for ($i=0; $i<sizeof($ips); $i++)
			{
				if (network_match($ips[$i]['ip_ipaddr'], $ips[$i]['ip_netmask'], $ip))
				{
					$isexists = true;
					break;
				}	// if()
			}	// for()
		}	// if()

		return $isexists;
	}	// function()

	function web_allow_ip_id_check($d_no, $ip, $m_id)
	{
		global $TB;

		$_ex = explode('.', $ip);
		$ip_1 = $_ex[0].'.';
		$ip_3 = $_ex[0].'.'.$_ex[1].'.'.$_ex[2].'.';

		// ID로 조회해서 ID가 있을 경우에만 검사하도록 하기 위해서 추가
		$q = "
				SELECT
					COUNT(*)
				FROM
					".$TB['WEB_ALLOW_IP']."
				WHERE
					d_no = '".$d_no."'
					AND m_id != '' AND m_id = '".$m_id."'";

		$id_cnt = db_get_one($q);

		if ($id_cnt == 0) {
			return web_allow_ip_check($d_no, $ip);
		}

		// 1개 IP, C 클래스 대역 체크
		$q = "
				SELECT
					COUNT(*)
				FROM
					".$TB['WEB_ALLOW_IP']."
				WHERE
					d_no = '".$d_no."'
					AND m_id != '' AND m_id = '".$m_id."' 
					AND (
						(ip_ipaddr='".$ip."' AND ip_netmask='255.255.255.255')
						OR (ip_ipaddr LIKE '".$ip_3."%' AND ip_netmask='255.255.255.0')
						)
				";

		$ip_cnt = db_get_one($q);

		$isexists = false;
		if ($ip_cnt > 0)
		{
			$isexists = true;
		} else
		{
			// 그외 IP 대역중 앞자리 하나가 같은 경우만 체크.
			$q = "
					SELECT
						ip_ipaddr, ip_netmask
					FROM
						".$TB['WEB_ALLOW_IP']."
					WHERE
						d_no = '".$d_no."'
						AND m_id = '" . $m_id . "'
						AND (
							ip_ipaddr LIKE '".$ip_1."%'
							AND ip_netmask != '255.255.255.255'
							AND ip_netmask != '255.255.255.0'
							)
					";
			$ips = db_get_rows($q);

			for ($i=0; $i<sizeof($ips); $i++)
			{
				if (network_match($ips[$i]['ip_ipaddr'], $ips[$i]['ip_netmask'], $ip))
				{
					$isexists = true;
					break;
				}	// if()
			}	// for()
		}	// if()

		return $isexists;
	}	// function()

	function web_allow_ip_status_check($d_no, $ip)
	{
		global $TB;

		$_ex  = explode('.', $ip);
		$ip_1 = $_ex[0] . '.';
		$ip_3 = $_ex[0] . '.' . $_ex[1] . '.' . $_ex[2] . '.';

		// 1개 IP, C 클래스 대역 체크
		$q = "
				SELECT
					COUNT(*)
				FROM
					" . $TB['WEB_ALLOW_IP'] . "
				WHERE
					d_no = '" . $d_no . "'
					AND (
						(ip_ipaddr='" . $ip . "' AND ip_netmask='255.255.255.255')
						OR (ip_ipaddr LIKE '" . $ip_3 . "%' AND ip_netmask='255.255.255.0')
						)
				";

		$ip_cnt = db_get_one($q);

		$status = 'DIP';
		if ($ip_cnt > 0) {
			$status = 'DID';
		} else {
			// 그외 IP 대역중 앞자리 하나가 같은 경우만 체크.
			$q = "
				SELECT
					ip_ipaddr, ip_netmask
				FROM
					".$TB['WEB_ALLOW_IP']."
				WHERE
					d_no = '".$d_no."'
					AND (
						ip_ipaddr LIKE '".$ip_1."%'
						AND ip_netmask != '255.255.255.255'
						AND ip_netmask != '255.255.255.0'
						)
				";
			$ips = db_get_rows($q);

			for ($i=0; $i<sizeof($ips); $i++)
			{
				if (network_match($ips[$i]['ip_ipaddr'], $ips[$i]['ip_netmask'], $ip))
				{
					$status = 'DID';
					break;
				}	// if()
			}	// for()
		}

		return $status;
	}

?>