如何给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 相关文章推荐
图片之间的切换
Jun 26 Javascript
JavaScript中SQL语句的应用实现
May 04 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
JavaScript实现横向滑出的多级菜单效果
Oct 09 Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
Mar 21 jQuery
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 Javascript
详解小程序原生使用ES7 async/await语法
Aug 06 Javascript
原生js实现贪吃蛇游戏
Oct 26 Javascript
基于vue+echarts数据可视化大屏展示的实现
Dec 25 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
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
php mysql索引问题
2008/06/07 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
php单例模式示例分享
2015/02/12 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
js随机生成一个验证码
2017/06/01 Javascript
原生JS实现小小的音乐播放器
2017/10/16 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
2017/10/25 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
Python 学习笔记
2008/12/27 Python
编写Python脚本来实现最简单的FTP下载的教程
2015/05/04 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
python实现与redis交互操作详解
2020/04/21 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
优秀的计算机专业求职信范文
2013/12/27 职场文书
如何写好建议书
2014/03/13 职场文书
物流专业自荐信
2014/05/23 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
债务纠纷起诉书
2015/05/20 职场文书
赢在中国观后感
2015/06/02 职场文书
2016年情人节广告语
2016/01/28 职场文书