257 lines
8.0 KiB
HTML
257 lines
8.0 KiB
HTML
|
<style type="text/css">
|
||
|
.sm-st {
|
||
|
background:#fff;
|
||
|
padding:20px;
|
||
|
-webkit-border-radius:3px;
|
||
|
-moz-border-radius:3px;
|
||
|
border-radius:3px;
|
||
|
margin-bottom:20px;
|
||
|
-webkit-box-shadow: 0 1px 0px rgba(0,0,0,0.05);
|
||
|
box-shadow: 0 1px 0px rgba(0,0,0,0.05);
|
||
|
}
|
||
|
.sm-st-icon {
|
||
|
width:60px;
|
||
|
height:60px;
|
||
|
display:inline-block;
|
||
|
line-height:60px;
|
||
|
text-align:center;
|
||
|
font-size:30px;
|
||
|
background:#eee;
|
||
|
-webkit-border-radius:5px;
|
||
|
-moz-border-radius:5px;
|
||
|
border-radius:5px;
|
||
|
float:left;
|
||
|
margin-right:10px;
|
||
|
color:#fff;
|
||
|
}
|
||
|
.sm-st-info {
|
||
|
font-size:12px;
|
||
|
padding-top:2px;
|
||
|
}
|
||
|
.sm-st-info span {
|
||
|
display:block;
|
||
|
font-size:24px;
|
||
|
font-weight:600;
|
||
|
}
|
||
|
.orange {
|
||
|
background:#fa8564 !important;
|
||
|
}
|
||
|
.tar {
|
||
|
background:#45cf95 !important;
|
||
|
}
|
||
|
.sm-st .green {
|
||
|
background:#86ba41 !important;
|
||
|
}
|
||
|
.pink {
|
||
|
background:#AC75F0 !important;
|
||
|
}
|
||
|
.yellow-b {
|
||
|
background: #fdd752 !important;
|
||
|
}
|
||
|
.stat-elem {
|
||
|
|
||
|
background-color: #fff;
|
||
|
padding: 18px;
|
||
|
border-radius: 40px;
|
||
|
|
||
|
}
|
||
|
|
||
|
.stat-info {
|
||
|
text-align: center;
|
||
|
background-color:#fff;
|
||
|
border-radius: 5px;
|
||
|
margin-top: -5px;
|
||
|
padding: 8px;
|
||
|
-webkit-box-shadow: 0 1px 0px rgba(0,0,0,0.05);
|
||
|
box-shadow: 0 1px 0px rgba(0,0,0,0.05);
|
||
|
font-style: italic;
|
||
|
}
|
||
|
|
||
|
.stat-icon {
|
||
|
text-align: center;
|
||
|
margin-bottom: 5px;
|
||
|
}
|
||
|
|
||
|
.st-red {
|
||
|
background-color: #F05050;
|
||
|
}
|
||
|
.st-green {
|
||
|
background-color: #27C24C;
|
||
|
}
|
||
|
.st-violet {
|
||
|
background-color: #7266ba;
|
||
|
}
|
||
|
.st-blue {
|
||
|
background-color: #23b7e5;
|
||
|
}
|
||
|
|
||
|
.stats .stat-icon {
|
||
|
color: #28bb9c;
|
||
|
display: inline-block;
|
||
|
font-size: 26px;
|
||
|
text-align: center;
|
||
|
vertical-align: middle;
|
||
|
width: 50px;
|
||
|
float:left;
|
||
|
}
|
||
|
|
||
|
.stat {
|
||
|
white-space: nowrap;
|
||
|
overflow: hidden;
|
||
|
text-overflow: ellipsis;
|
||
|
display: inline-block;
|
||
|
margin-right: 10px; }
|
||
|
.stat .value {
|
||
|
font-size: 20px;
|
||
|
line-height: 24px;
|
||
|
overflow: hidden;
|
||
|
text-overflow: ellipsis;
|
||
|
font-weight: 500; }
|
||
|
.stat .name {
|
||
|
overflow: hidden;
|
||
|
text-overflow: ellipsis; }
|
||
|
.stat.lg .value {
|
||
|
font-size: 26px;
|
||
|
line-height: 28px; }
|
||
|
.stat.lg .name {
|
||
|
font-size: 16px; }
|
||
|
.stat-col .progress {height:2px;}
|
||
|
.stat-col .progress-bar {line-height:2px;height:2px;}
|
||
|
|
||
|
.item {
|
||
|
padding:30px 0;
|
||
|
}
|
||
|
</style>
|
||
|
{if $todaytimes>0}
|
||
|
<div class="alert alert-danger-light">
|
||
|
今日有攻击,请注意安全防护,安全并不能完全依赖于本插件。
|
||
|
</div>
|
||
|
{/if}
|
||
|
<div class="panel panel-default panel-intro">
|
||
|
<div class="panel-heading">
|
||
|
{:build_heading(null, false)}
|
||
|
<ul class="nav nav-tabs">
|
||
|
<li class="active"><a href="#one" data-toggle="tab">概括</a></li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
<div class="panel-body">
|
||
|
<div id="myTabContent" class="tab-content">
|
||
|
<div class="tab-pane fade active in" id="one">
|
||
|
|
||
|
<div class="row">
|
||
|
<div class="col-sm-3 col-xs-6">
|
||
|
<div class="sm-st clearfix">
|
||
|
<a href="javascript:;" data-title="">
|
||
|
<span class="sm-st-icon st-red"><i class="fa fa-warning"></i></span>
|
||
|
<div class="sm-st-info">
|
||
|
<span>{$todaytimes}</span>
|
||
|
今日攻击(次)
|
||
|
</div>
|
||
|
</a>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="col-sm-3 col-xs-6">
|
||
|
<div class="sm-st clearfix">
|
||
|
<a href="javascript:;" data-title="攻击来源(IP)">
|
||
|
<span class="sm-st-icon st-violet"><i class="fa fa-users"></i></span>
|
||
|
<div class="sm-st-info">
|
||
|
<span>{$todayips}</span>
|
||
|
今日IP
|
||
|
</div>
|
||
|
</a>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="col-sm-3 col-xs-6">
|
||
|
<div class="sm-st clearfix">
|
||
|
<a href="javascript:;" data-title="">
|
||
|
<span class="sm-st-icon st-violet"><i class="fa fa-warning"></i></span>
|
||
|
<div class="sm-st-info">
|
||
|
<span>{$totaltimes}</span>
|
||
|
总攻击(次)
|
||
|
</div>
|
||
|
</a>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="col-sm-3 col-xs-6">
|
||
|
<div class="sm-st clearfix">
|
||
|
<a href="javascript:;" data-title="攻击来源(IP)">
|
||
|
<span class="sm-st-icon st-green"><i class="fa fa-users"></i></span>
|
||
|
<div class="sm-st-info">
|
||
|
<span>{$totalips}</span>
|
||
|
总共(IP)
|
||
|
</div>
|
||
|
</a>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<div class="row">
|
||
|
<div class="col-lg-12">
|
||
|
<div id="echart" style="height:400px;width:100%;"></div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<div class="row">
|
||
|
<div class="col-lg-6">
|
||
|
<div class="box box-info">
|
||
|
<div class="box-header"><h3 class="box-title">攻击排行</h3></div>
|
||
|
<div class="box-body" style="padding-top:0;">
|
||
|
<table class="table table-striped">
|
||
|
<tbody>
|
||
|
{foreach rankingips as $v}
|
||
|
|
||
|
<tr>
|
||
|
<td width="140">{$v['count']}(次)</td>
|
||
|
<td>{$v['ip']}</td>
|
||
|
</tr>
|
||
|
{/foreach}
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div class="col-lg-6">
|
||
|
<div class="box box-info">
|
||
|
<div class="box-header"><h3 class="box-title">今日攻击排行</h3></div>
|
||
|
<div class="box-body" style="padding-top:0;">
|
||
|
<table class="table table-striped">
|
||
|
<tbody>
|
||
|
{foreach $todayranking as $v}
|
||
|
|
||
|
<tr>
|
||
|
<td width="140">{$v['count']}(次)</td>
|
||
|
<td>{$v['ip']}</td>
|
||
|
</tr>
|
||
|
{/foreach}
|
||
|
</tbody>
|
||
|
</table>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="tab-pane fade" id="two">
|
||
|
<div class="row">
|
||
|
<div class="col-xs-12">
|
||
|
{:__('Custom zone')}
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<script>
|
||
|
var data = {
|
||
|
column: {:json_encode(array_keys($totallist))},
|
||
|
totallist: {:json_encode(array_values($totallist))},
|
||
|
};
|
||
|
</script>
|