如何给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 相关文章推荐
解决jquery的datepicker的本地化以及Today问题
May 23 Javascript
IE中getElementsByName()对有些元素无效的解决方案
Sep 28 Javascript
动态加载JavaScript文件的两种方法
Apr 22 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
May 11 Javascript
javascript深拷贝(deepClone)详解
Aug 24 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
解决vue router使用 history 模式刷新后404问题
Jul 19 Javascript
JS同步、异步、延迟加载的方法
May 05 Javascript
如何用webpack4带你实现一个vue的打包的项目
Jun 20 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
Feb 12 Javascript
Vue toFixed保留两位小数的3种方式
Oct 23 Javascript
原生js实现简单轮播图
Oct 26 Javascript
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
简单采集了yahoo的一些数据
2007/02/14 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
2017/08/18 jQuery
React如何避免重渲染
2018/04/10 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
vue实现标签云效果的方法详解
2019/08/28 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
Django框架验证码用法实例分析
2019/05/10 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
啤酒节策划方案
2014/05/28 职场文书
演讲稿开场白台词
2014/08/25 职场文书
暑假社会实践证明格式
2014/10/28 职场文书