<?PHP

/* ====================
Seditio - Website engine
Copyright Neocrome & Seditio Team
https://seditio.org

[BEGIN_SED]
File=plugins/ipsearch/ipsearch.php
Version=179
Updated=2022-aug-03
Type=Plugin
Author=Seditio Team
Description=
[END_SED]

[BEGIN_SED_EXTPLUGIN]
Code=ipsearch
Part=admin
File=ipsearch.admin
Hooks=tools
Tags=
Order=10
[END_SED_EXTPLUGIN]

==================== */

if (!defined('SED_CODE')) { die('Wrong URL.'); }

$ipx = new XTemplate(SED_ROOT . '/plugins/ipsearch/ipsearch.tpl');	

$ipx -> assign(array(
    "IPSEARCH_FORM_SEND" => sed_url('admin', 'm=tools&p=ipsearch&a=search&'.sed_xg()),
    "IPSEARCH_FORM_IPFIELD" => sed_textbox('id', $id, 16, 16)
));

if ($a == 'search')
{
    sed_check_xg();
    $id_g = sed_import('id', 'G', 'TXT', 15);
    $id_p = sed_import('id', 'P', 'TXT', 15);

    if(!empty($id_g)) 
		{ $id = $id_g; }
    else
		{ $id = $id_p; }

    $userip = explode(".", $id);
    if (count($userip) != 4 || mb_strlen($userip[0]) > 3 || mb_strlen($userip[1]) > 3 || mb_strlen($userip[2]) > 3 || mb_strlen($userip[3]) > 3)
		{ sed_die(); }

    $ipmask1 = $userip[0].".".$userip[1].".".$userip[2].".".$userip[3];
    $ipmask2 = $userip[0].".".$userip[1].".".$userip[2];
    $ipmask3 = $userip[0].".".$userip[1];

    $res_host = @gethostbyaddr($id);
    $res_dns = ($res_host == $id) ? 'Unknown' : $res_host;

    $sql = sed_sql_query("SELECT user_id, user_name, user_lastip FROM $db_users WHERE user_lastip = '$ipmask1' ");
    $totalmatches1 = sed_sql_numrows($sql);

    while ($row = sed_sql_fetchassoc($sql))
		{
		$ipx -> assign(array(
			"IPSEARCH_IPMASK1" => sed_build_user($row['user_id'], sed_cc($row['user_name'])),
			"IPSEARCH_LASTIP_IPMASK1" => sed_build_ipsearch($row['user_lastip'])
		));
		$ipx -> parse("IPSEARCH.IPSEARCH_RESULTS.IPSEARCH_IPMASK1");
		}

    $sql = sed_sql_query("SELECT user_id, user_name, user_lastip FROM $db_users WHERE user_lastip LIKE '$ipmask2.%' ");
    $totalmatches2 = sed_sql_numrows($sql);

    while ($row = sed_sql_fetchassoc($sql))
		{
		$ipx -> assign(array(
			"IPSEARCH_IPMASK2" => sed_build_user($row['user_id'], sed_cc($row['user_name'])),
			"IPSEARCH_LASTIP_IPMASK2" => sed_build_ipsearch($row['user_lastip'])
		));
		$ipx -> parse("IPSEARCH.IPSEARCH_RESULTS.IPSEARCH_IPMASK2");
		}

	$sql = sed_sql_query("SELECT user_id, user_name, user_lastip FROM $db_users WHERE user_lastip LIKE '$ipmask3.%.%' ");
	$totalmatches3 = sed_sql_numrows($sql);

    while ($row = sed_sql_fetchassoc($sql))
		{
		$ipx -> assign(array(
			"IPSEARCH_IPMASK3" => sed_build_user($row['user_id'], sed_cc($row['user_name'])),
			"IPSEARCH_LASTIP_IPMASK3" => sed_build_ipsearch($row['user_lastip'])
		));
		$ipx -> parse("IPSEARCH.IPSEARCH_RESULTS.IPSEARCH_IPMASK3");
		}

    $ipx -> assign(array(
        "IPSEARCH_RESULT_DNS" => $res_dns,
        "IPSEARCH_RESULT_TOTALMATCHES1" => $totalmatches1,
        "IPSEARCH_RESULT_IPMASK1" => $ipmask1,
        "IPSEARCH_RESULT_TOTALMATCHES2" => $totalmatches2,
        "IPSEARCH_RESULT_IPMASK2" => $ipmask2,
        "IPSEARCH_RESULT_TOTALMATCHES3" => $totalmatches3,
        "IPSEARCH_RESULT_IPMASK3" => $ipmask3
    ));
    $ipx -> parse("IPSEARCH.IPSEARCH_RESULTS");
}

$ipx -> parse("IPSEARCH");
$plugin_body = $ipx -> text("IPSEARCH");

?>
