如何给ss bash 写一个 WEB 端查看流量的页面


Posted in Javascript onMarch 23, 2017

由于刚毕业的穷大学生,和朋友合租了一台服务器开了多个端口提供 ss 服务,懒得配置 ss-panel,就使用了 ss-bash 来监控不同端口的流量,但每次都要等上服务器才能看到流量使用情况,很麻烦,于是就写了个简单的页面来提供 WEB 访问。

JavaScript 版本

用 crontab 定时把流量记录文件复制到 WEB 目录下,写个 JS 脚本作数据处理。

function successFunction(data) {
 var allRows = data.split(/\r?\n|\r/);
 var table = '<table class="table table-hover" style="width: 50%; margin: auto;">';
 for (var singleRow = 0; singleRow < allRows.length; singleRow++) {
  if (singleRow === 0) {
   table += '<thead>';
   table += '<tr>';
  } else {
   table += '<tr>';
  }
  var rowCells = allRows[singleRow].split(',');
  for (var rowCell = 0; rowCell < rowCells.length; rowCell++) {
   if (singleRow === 0) {
    table += '<th class="text-right">';
    table += rowCells[rowCell];
    table += '</th>';
   } else {
    table += '<td class="text-right">';
    table += rowCells[rowCell];
    table += '</td>';
   }
  }
  if (singleRow === 0) {
   table += '</tr>';
   table += '</thead>';
   table += '<tbody>';
  } else {
   table += '</tr>';
  }
 } 
 table += '</tbody>';
 table += '</table>';
 $('body').append(table);
}

首页

<!DOCTYPE html>
<html>
<head>
  <title>Traffic</title>
  <script src=//cdn.bootcss.com/jquery/3.2.0/jquery.min.js></script>
  <link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="stylesheet">
  <script src="//cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <script src="test.js"></script>
</head>
<body>
<script type="text/javascript">
var text="";
$.ajax({
  url: "traffic.txt",
  method: "GET",
  success: function(data){
    text = data.replace(' ', '').replace(/\t| /g, ',');
    successFunction(text);
  }
})
</script>
</body>
</html>

PHP 版本

服务器本来就安装了 PHP,所以用 PHP 也是很理所当然的事情了。

<!DOCTYPE html>
<html>
<head>
  <title>Traffic</title>
  <script src=//cdn.bootcss.com/jquery/3.2.0/jquery.min.js></script>
  <link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="stylesheet">
  <script src="//cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<?php
$traffic = file_get_contents("d:\\traffic.txt");
$traffic = explode("\n", $traffic);
echo "<table class='table table-hover' style='width: 50%; margin: auto;''>\n";
echo "<thead>\n";
echo "<tr>\n";
for ($i=0; $i < sizeof($traffic); $i++) {
  if ($i === 0) {
    $str = preg_replace('/ /','',$traffic[0],1);
    $str = preg_replace('/ /', ',', $str);
    $str = explode(',', $str);
    for ($j=0; $j < sizeof($str); $j++) { 
      echo "<th class='text-right'>" . $str[$j] . "</th>\n";
    }
    echo "</tr>\n";
    echo "</thead>\n";
    echo "<tbody>\n";
  }
  else {
    $str = preg_replace('/\t/', ',', $traffic[$i]);
    $str = explode(',', $str);
    echo "<tr>\n";
    for ($j=0; $j < sizeof($str); $j++) { 
      echo "<td class='text-right'>" . $str[$j] . "</td>\n";
    }
    echo "</tr>\n";
  }
}
echo "</tbody>\n";
echo "</table>\n";
?>
</body>
</html>

以上所述是小编给大家介绍的给ss bash 写一个 WEB 端查看流量的页面,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript编程起步(第四课)
Jan 10 Javascript
基于jQuery的日期选择控件
Oct 27 Javascript
YUI Compressor压缩JavaScript原理及微优化
Jan 07 Javascript
Textarea根据内容自适应高度
Oct 28 Javascript
基于jPlayer三分屏的制作方法
Dec 21 Javascript
JavaScript利用Date实现简单的倒计时实例
Jan 12 Javascript
bootstrap组件之导航组件使用方法
Jan 19 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
Oct 23 Javascript
解决vue页面DOM操作不生效的问题
Mar 17 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
May 09 Javascript
vue中进行微博分享的实例讲解
Oct 14 Javascript
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
angularJS深拷贝详解
Mar 23 #Javascript
canvas实现环形进度条效果
Mar 23 #Javascript
Javascript实现登录记住用户名和密码功能
Mar 22 #Javascript
jquery实现图片平滑滚动详解
Mar 22 #jQuery
JavaScript中在光标处插入添加文本标签节点的详细方法
Mar 22 #Javascript
jQuery轻松实现无缝轮播效果
Mar 22 #jQuery
JavaScript登录记住密码操作(超简单代码)
Mar 22 #Javascript
You might like
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
为什么JavaScript没有块级作用域
2016/05/22 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
Python牛刀小试密码爆破
2011/02/03 Python
python使用PyFetion来发送短信的例子
2014/04/22 Python
python实现telnet客户端的方法
2015/04/15 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
乡镇三项教育实施方案
2014/03/30 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
匿名检举信范文
2015/03/02 职场文书
python基础入门之字典和集合
2021/06/13 Python
基于Python实现射击小游戏的制作
2022/04/06 Python