Пример #1
0
function luc_url_monitoring()
{
    global $wpdb, $StatPressV_Option;
    $table_name = STATPRESS_V_TABLE_NAME;
    $querylimit = 20;
    $pa = luc_page_posts();
    $action = "urlmonitoring";
    // Number of distinct "no author post or page URL"
    $Num = $wpdb->get_var("SELECT COUNT(*)\r\n\t\t\t\tFROM {$table_name}\r\n\t\t\t\tWHERE realpost=0 AND (spider ='' OR spider LIKE 'Unknown Spam Bot')\r\n\t\t\t\t");
    $NumPage = ceil($Num / $querylimit);
    echo "<div class='wrap'><h2>" . __('URL Monitoring', 'statpress') . "</h2>\r\n\t       </br> This page is designed to help you secure your website:<div title='Indeed this page shows all URLs that have access to your website or your blog and who are not posts or pages written by an author of your website.Some are legitimate as /category or the robots like Google. Nevertheless, they are all shown so you can secure your blog or your site by selecting the ones you want to block access to your site.'>Learn more</div>";
    luc_print_pp_pa_link(0, 0, $action, $NumPage, $pa);
    $LimitValue = $pa * $querylimit - $querylimit;
    ?>
	<table class='widefat' >
		<thead>
		<tr>
			<th scope='col'>Date</th>
			<th scope='col'>Time</th>
			<th scope='col'>IP</th>
			<th scope='col'>Country</th>
			<th scope='col' width="30%">URL requested</th>
			<th scope='col' width="30%">Agent</th>
			<th scope='col'>Spider</th>
			<th scope='col'>OS</th>
			<th scope='col'>Browser</th>
		</tr>
		</thead>
		<tbody>
	<?php 
    $qry = $wpdb->get_results("SELECT date,time,ip,urlrequested,agent,os,browser,spider,country,realpost\r\n\t\t\tFROM {$table_name}\r\n\t\t\tWHERE realpost=0 AND (spider ='' OR spider LIKE 'Unknown Spam Bot')\r\n\t\t\tORDER BY id DESC\r\n\t\t\tLIMIT {$LimitValue}, {$querylimit};");
    foreach ($qry as $rk) {
        echo "<tr>\r\n\t\t\t<td>" . luc_hdate($rk->date) . "</td>\r\n\t\t\t<td>" . $rk->time . "</td>\r\n\t\t\t<td>" . luc_create_href($rk->ip, 'ip') . "</td>\r\n\t\t\t<td>" . luc_HTML_IMG($rk->country, 'country', false) . "</td>\r\n\t\t\t<td>" . $rk->urlrequested . "</td>\r\n\t\t\t<td><a href='http://www.google.com/search?q=%22User+Agent%22+" . urlencode($rk->agent) . "' target='_blank' title='Search for User Agent string on Google...'> " . $rk->agent . "</a> </td>\r\n\t\t\t<td>" . luc_HTML_IMG($rk->spider, 'spider', false) . "</td>\r\n\t\t\t<td>" . luc_HTML_IMG($rk->os, 'os', $text_OS) . "</td>\r\n\t\t\t<td>" . luc_HTML_IMG($rk->browser, 'browser', $text_browser) . "</td>";
    }
    ?>
		</tbody>
	</table>
	
<?php 
    echo "</div>";
    luc_print_pp_pa_link(0, 0, $action, $NumPage, $pa);
    luc_StatPressV_load_time($start);
}
Пример #2
0
function luc_spyvisitors()
{
    global $wpdb;
    global $StatPressV_Option;
    $action = "spyvisitors";
    $table_name = STATPRESS_V_TABLE_NAME;
    // number of IP or bot by page
    $LIMIT = $StatPressV_Option['StatPressV_SpyVisitor_IP_Per_Page'] ? $StatPressV_Option['StatPressV_SpyVisitor_IP_Per_Page'] : 20;
    $LIMIT_PROOF = $StatPressV_Option['StatPressV_SpyVisitor_Visits_Per_IP'] ? $StatPressV_Option['StatPressV_SpyVisitor_Visits_Per_IP'] : 20;
    $pp = luc_page_periode();
    // Number of distinct ip (unique visitors)
    $NumIP = $wpdb->get_var("SELECT count(distinct ip)\n\t\t\t\t\t\t\t\t\tFROM {$table_name}\n\t\t\t\t\t\t\t\t\tWHERE spider='' ;");
    $NP = ceil($NumIP / $LIMIT);
    $LimitValue = $pp * $LIMIT - $LIMIT;
    $sql = "SELECT *\n\t\t\t\t\tFROM {$table_name} as T1\n\t\t\t\t\tJOIN\n\t\t\t\t\t\t(SELECT max(id) as MaxId,ip\n\t\t\t\t\t\t\tFROM {$table_name}\n\t\t\t\t\t\t\tWHERE spider=''\n\t\t\t\t\t\t\tGROUP BY ip\n\t\t\t\t\t\t\tORDER BY MaxId DESC LIMIT {$LimitValue}, {$LIMIT}\n\t\t\t\t\t\t) as T2\n\t\t\t\t\tON T1.ip = T2.ip\n\t\t\t\t\tORDER BY MaxId DESC, id DESC;\n\t\t\t\t";
    $qry = $wpdb->get_results($sql);
    if ($StatPressV_Option['StatPressV_Use_GeoIP'] == 'checked' & function_exists('geoip_open')) {
        // Open the database to read and save info
        if (file_exists(luc_GeoIP_dbname('city'))) {
            $gic = geoip_open(luc_GeoIP_dbname('city'), GEOIP_STANDARD);
            $geoip_isok = true;
        }
    }
    echo "<div class='wrap'><h2>" . __('Visitor Spy', 'statpress') . "</h2>";
    ?>
<script>
	function ttogle(thediv){
	if (document.getElementById(thediv).style.display=="inline") {
	document.getElementById(thediv).style.display="none"
	} else {document.getElementById(thediv).style.display="inline"}
	}
</script>
<?php 
    $MaxId = 0;
    $num_row = 0;
    // Add pagination
    luc_insert_pagination_options("spyvisitors", $NumIP, $LIMIT);
    luc_print_pp_link($NP, $pp, $action);
    echo '<table class="widefat" id="mainspytab" name="mainspytab" width="99%" border="0" cellspacing="0" cellpadding="4">';
    foreach ($qry as $rk) {
        // Visitor Spy
        if ($MaxId != $rk->MaxId) {
            if ($geoip_isok === true) {
                $gir = GeoIP_record_by_addr($gic, $rk->ip);
            }
            echo "<thead><tr><th scope='colgroup' colspan='2'>";
            if ($rk->country != '') {
                echo "HTTP country " . luc_HTML_IMG($rk->country, 'country', false);
            } else {
                echo "Hostip country <IMG SRC='http://api.hostip.info/flag.php?ip=" . $rk->ip . "' border=0 width=18 height=12>  ";
            }
            if ($geoip_isok === true) {
                $lookupsvc = "GeoIP details";
            } else {
                $lookupsvc = "Hostip details";
            }
            echo "\t<strong><span><font size='2' color='#7b7b7b'> " . $rk->ip . " </font></span></strong>\n\t\t\t\t\t<span style='color:#006dca;cursor:pointer;border-bottom:1px dotted #AFD5F9;font-size:8pt;'\n\t\t\t\t\t\tonClick=ttogle('" . $rk->ip . "');>" . $lookupsvc . "</span></div>\n\t\t\t\t\t<div id='" . $rk->ip . "' name='" . $rk->ip . "'>";
            if ($geoip_isok === true) {
                echo "\t<small><br>\n\t\t\t\t\t\t\tCountry: " . utf8_encode($gir->country_name) . " (" . $gir->country_code . ")<br>\n\t\t\t\t\t\t\tCity: " . utf8_encode($gir->city) . "<br>\n\t\t\t\t\t\t\tLatitude/Longitude: <a href='http://maps.google.com/maps?q=" . $gir->latitude . "+" . $gir->longitude . "' target='_blank' title='Lookup latitude/longitude location on Google Maps...'>" . $gir->latitude . " " . $gir->longitude . "</a>\n\t\t\t\t\t\t</small>";
            } else {
                echo "\t<iframe style='overflow:hide;border:0px;width:100%;height:35px;font-family:helvetica;paddng:0;'\n\t\t\t\t\t\t\tscrolling='no' marginwidth=0 marginheight=0 src=http://api.hostip.info/get_html.php?ip=" . $rk->ip . ">\n\t\t\t\t\t\t</iframe>";
            }
            echo "\t<small>\n\t\t\t\t\t\t<br>" . $rk->os . "\n\t\t\t\t\t\t<br>" . $rk->browser . "\n\t\t\t\t\t\t<br>" . gethostbyaddr($rk->ip) . "\n\t\t\t\t\t\t<br>" . $rk->agent . "\n\t\t\t\t\t</small></div></th></tr></thead><tbody>\n\t\t\t\t\t<script> document.getElementById('" . $rk->ip . "').style.display='none';</script>\n\t\t\t\t\t<tr>\n\t\t\t\t\t<td>" . luc_hdate($rk->date) . " " . $rk->time . "</td>\n\t\t\t\t\t<td>" . (isset($rk->post_title) ? $rk->post_title : luc_post_title_Decode(urldecode($rk->urlrequested))) . "";
            if ($rk->searchengine != '') {
                echo "<br><small>arrived from <b>" . $rk->searchengine . "</b> searching <a target='_blank' href='" . $rk->referrer . "' >" . urldecode($rk->search) . "</a></small>";
            } elseif ($rk->referrer != '' && strpos($rk->referrer, $home) === false) {
                echo "<br><small>arrived from <a target='_blank' href='" . $rk->referrer . "' >" . $rk->referrer . "</a></small>";
            }
            echo "</div></td></tr>\n";
            $MaxId = $rk->MaxId;
            $num_row = 1;
        } elseif ($num_row < $LIMIT_PROOF) {
            echo "<tr><td>" . luc_hdate($rk->date) . " " . $rk->time . "</td>\n\t\t\t\t\t\t<td>" . (isset($rk->post_title) ? $rk->post_title : luc_post_title_Decode(urldecode($rk->urlrequested))) . "";
            if ($rk->searchengine != '') {
                echo "<br><small>arrived from <b>" . $rk->searchengine . "</b> searching <a target='_blank' href='" . $rk->referrer . "' >" . urldecode($rk->search) . "</a></small>";
            } elseif ($rk->referrer != '' && strpos($rk->referrer, $home) === false) {
                echo "<br><small>arrived from <a target='_blank' href='" . $rk->referrer . "' >" . $rk->referrer . "</a></small>";
            }
            $num_row += 1;
            echo "</td></tr></tbody>";
        }
    }
    echo "</div></td></tr>\n</table>";
    luc_print_pp_link($NP, $pp, $action);
    echo "</div>";
    luc_StatPressV_load_time();
}
Пример #3
0
function luc_main_table_latest_spambots()
{
    global $wpdb, $StatPressV_Option;
    $table_name = STATPRESS_V_TABLE_NAME;
    $querylimit = isset($_POST['spambotsrows']) ? $_POST['spambotsrows'] : $StatPressV_Option['StatPressV_Rows_Per_Latest'];
    ?>
	<table class='widefat' >
		<thead>
		<tr>
			<th scope='col'>Date</th>
			<th scope='col'>Time</th>
			<th scope='col'>IP</th>
			<th scope='col'></th>
			<th scope='col' width="30%">Page</th>
			<th scope='col' width="30%">Agent</th>
		</tr>
		</thead>
		<tbody>
	<?php 
    $qry = $wpdb->get_results("SELECT date, time, ip, urlrequested, spider, agent\r\n\t\t\tFROM {$table_name}\r\n\t\t\tWHERE spider LIKE '%spam bot'\r\n\t\t\tORDER BY id DESC\r\n\t\t\tLIMIT {$querylimit};");
    foreach ($qry as $rk) {
        echo "<tr>\r\n\t\t\t\t\t<td>" . luc_hdate($rk->date) . "</td>\r\n\t\t\t\t\t<td>" . $rk->time . "</td>\r\n\t\t\t\t\t<td>" . luc_create_href($rk->ip, 'ip') . "</td>\r\n\t\t\t\t\t<td>" . luc_HTML_IMG($rk->spider, 'spider', false) . "</td>\r\n\t\t\t\t\t<td>" . (isset($rk->post_title) ? $rk->post_title : luc_post_title_Decode(urldecode($rk->urlrequested))) . "</td>\r\n\t\t\t\t<td> " . $rk->agent . "</td>\r\n\t\t\t\t</tr>";
    }
    ?>
		</tbody>
	</table>
	<?php 
    if (isset($_POST['spambotsrows'])) {
        die;
    }
}
Пример #4
0
function luc_display_by_IP($ip)
{
    global $wpdb;
    $table_name = STATPRESS_V_TABLE_NAME;
    $qry_s = "SELECT *\n\t\t\t\tFROM {$table_name}\n\t\t\t\tWHERE ip = '{$ip}'\n\t\t\t\tORDER BY id DESC\n\t\t\t\t";
    $qry = $wpdb->get_results($qry_s);
    $num = $wpdb->num_rows;
    $qry_sa = "SELECT DISTINCT agent\n\t\t\t\tFROM {$table_name}\n\t\t\t\tWHERE ip = '{$ip}'\n\t\t\t\tORDER BY agent ASC ;\n\t\t\t\t";
    $qrya = $wpdb->get_results($qry_sa);
    if ($_POST['markbot'] == 'Mark as spambot') {
        luc_BanBot('ip', $ip);
    }
    if ($_POST['banip'] == 'Ban IP address') {
        luc_BanIP($ip);
    }
    $text_OS = $StatPressV_Option['StatPressV_Dont_Show_OS_name'] != 'checked' ? true : false;
    $text_browser = $StatPressV_Option['StatPressV_Dont_Show_Browser_name'] != 'checked' ? true : false;
    $text = "Report for " . $ip . " ";
    ?>
	<form method=post>
		<div class='wrap'><table style="width:100%"><tr><td><h2> <?php 
    _e($text);
    ?>
 </h2></td>

		<td width=50px align='right'>
			<input type=submit
				name=banip value='Ban IP address' >
		</td>
		</tr>
		</table>
		<table class='widefat'>
			<thead>
				<tr>
				<th scope='col' colspan='2'></th>
			</thead>
			<tbody>
				<tr>
					<td>Records in database:</td>
					<td> <?php 
    _e($num);
    ?>
 </td>
				</tr>
				<tr>
					<td>Latest hit:</td>
					<td> <?php 
    _e(luc_hdate($qry[0]->date) . " " . $qry[0]->time);
    ?>
 </td>
				</tr>
				<tr>
					<td>First hit:</td>
					<td> <?php 
    _e(luc_hdate($qry[$num - 1]->date) . " " . $qry[$num - 1]->time);
    ?>
 </td>
				</tr>
				<tr>
					<td>User agent(s):</td>
					<td> <?php 
    _e(luc_print_uas($qrya));
    ?>
 </td>
				</tr>
			</tbody>
		</table>
	<?php 
    $geoip = luc_GeoIP_get_data($ip);
    if ($geoip !== false) {
        ?>
		<table class='widefat'>
			<thead><tr><th scope='col' colspan='4'>GeoIP Information</th></tr></thead>
			<tbody>
			<tr>
				<td><strong>Country:</strong></td>
				<td> <?php 
        _e($geoip['cn'] . " (" . $geoip['cc'] . ")");
        ?>
					<IMG style='border:0px;height:16px;' alt='$cn' title='$cn' SRC=' <?php 
        _e(STATPRESS_V_PLUGIN_URL . "/images/domain/" . strtolower($geoip['cc']) . '.png');
        ?>
 '></td>
				<td><strong>Continent Code:</strong></td>
				<td> <?php 
        _e($geoip['continent_code']);
        ?>
 </td>
			</tr>
			<tr>
				<td><strong>Region:</strong></td>
				<td> <?php 
        _e($geoip['region']);
        ?>
 </td>
				<td><strong>Area Code: (USA Only)</strong></td>
				<td> <?php 
        _e($geoip['area_code']);
        ?>
 </td>
			</tr>
			<tr>
				<td><strong>City:</strong></td>
				<td> <?php 
        _e($geoip['city']);
        ?>
 </td>
				<td><strong>Postal Code: (USA Only)</strong></td>
				<td> <?php 
        _e($geoip['postal_code']);
        ?>
 </td>
			</tr>
			<tr>
				<td><strong>Latitude/Longitude</strong></td>
				<td> <a href='http://maps.google.com/maps?q=<?php 
        _e($geoip['latitude'] . "+" . $geoip['longitude']);
        ?>
' target='_blank' title='Lookup latitude/longitude location on Google Maps...'><?php 
        _e($geoip['latitude'] . " " . $geoip['longitude']);
        ?>
</a></td>
				<td><strong>Metro Code: (USA Only)</strong></td>
				<td> <?php 
        _e($geoip['metro_code']);
        ?>
 </td>
			</tr>
			</tbody>
		</table>
		<?php 
    }
    ?>
		<table class='widefat'>
			<thead>
				<tr>
				<th scope='col' colspan='6'>URLs Requested</th>
				</tr>
			</thead>
			<thead>
				<tr>
				<th scope='col'>Date</th>
				<th scope='col'>Time</th>
				<th scope='col'>OS</th>
				<th scope='col'>Browser</th>
				<th scope='col'>Agent</th>
				<th scope='col'>Referrer</th>
				<th scope='col'>URL Requested</th>
				</tr>
			</thead>
			<tbody>
	<?php 
    foreach ($qry as $rk) {
        ?>
				<tr>
					<td> <?php 
        _e(luc_hdate($rk->date));
        ?>
 </td>
					<td> <?php 
        _e($rk->time);
        ?>
 </td>
					<td> <?php 
        _e(luc_HTML_IMG($rk->os, 'os', $text_OS));
        ?>
 </td>
					<td> <?php 
        _e(luc_HTML_IMG($rk->browser, 'browser', $text_browser));
        ?>
</td>
					<td> <?php 
        _e($rk->agent);
        ?>
 </td>
					<td> <?php 
        _e($rk->referrer);
        ?>
 </td>
					<td> <?php 
        _e(luc_post_title_Decode($rk->urlrequested));
        ?>
 </td>
				</tr>
			</tbody>
		<?php 
    }
    ?>
		</table>
		</div>
	</form>
	<?php 
    luc_StatPressV_load_time();
}