如何给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 AJAX回调函数this指向问题
Feb 08 Javascript
悬浮数字的实现案例
Feb 19 Javascript
jquery判断单选按钮radio是否选中的方法
May 05 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
Aug 16 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
linux 后台运行node服务指令方法
May 23 Javascript
Vue实现星级评价效果实例详解
Dec 30 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 Javascript
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
es6中new.target的作用和使用场景简单示例分析
Mar 14 Javascript
js实现无缝轮播图插件封装
Jul 31 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
php获取文章上一页与下一页的方法
2014/12/01 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
json数据格式常见操作示例
2019/06/13 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
python实现简单坦克大战
2020/03/27 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
挂靠协议书范本
2014/04/22 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
员工工作能力评语
2014/12/31 职场文书
工作保证书
2015/01/17 职场文书
护士辞职信怎么写
2015/02/27 职场文书
Java并发编程必备之Future机制
2021/06/30 Java/Android
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL