成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

【強悍】d3.js讓ssh暴破次數可視化

安全 數據安全 移動開發
可能大家看的黑客電影比較多,對于數據的顯示感覺特別炫酷。但是,看久了你也許就不會那么新鮮了,那么現在我們就來看看如何讓數據可視化吧,本文作者通過d3.js來實現。

本博文出自51CTO博客老徐_kevin博主,有任何問題請進入博主頁面互動討論!

博文地址:http://laoxu.blog.51cto.com/4120547/1618400


一臺做手機app應用的服務器在某云上,很好奇如果沒有修改ssh端口的情況下,每天會被暴力破解多少次呢?帶著這個疑問,查看一下/var/log/messages的日志,grep一下里面多少含有"Failed"的日志記錄。。。

由于messages日志會有logrotate,所以:

  1. grep "^Mar  1"  /var/log/messages* | grep "Failed" | wc -l 

分別得到從本月1號到7號的暴力破解次數,分別是:

  1. 2015-03-07,4126   
  2. 2015-03-06,33499   
  3. 2015-03-05,80096   
  4. 2015-03-04,70208   
  5. 2015-03-03,79273   
  6. 2015-03-02,40995   
  7. 2015-03-01,11845 

除了7號比較安靜點,平均每天5、6萬次,看來黑客每天都很忙碌。。。

雖然數據比較少,但是看起來比較枯燥,看不出趨勢,讓數據可視化,那就用d3.js吧,上代碼。。。

wKioL1T8LNrx9-bJAACnSpOrbWs179.jpg

d3的庫文件直接從github上獲得即可。

index.html

  1. <!DOCTYPE html>   
  2. <html lang="en">   
  3.     <head>   
  4.         <meta charset="utf-8">   
  5.         <link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />   
  6.         <title>SSH爆破次數</title>   
  7.     </head>   
  8.     <body>   
  9.         <center><div id="container"></div></center>   
  10.         <script type="text/javascript" src="js/d3.v3.js"></script>   
  11.         <script type="text/javascript" src="js/index.js"></script>   
  12.     </body>   
  13. </html> 

style.css 

  1. #container {   
  2. background:#eee;    //容器的背景色   
  3. width:600px;   
  4. height:270px;   
  5. }   
  6.     
  7. body { font12px Arial;}   
  8.     
  9. path {   
  10.     stroke: mediumturquoise;  //曲線的顏色,可以在chrome的控制臺里使用stroke TAB后調試   
  11.     stroke-width2;   
  12.     fill: none;   
  13. }   
  14.     
  15. .axis path,   
  16. .axis line {   
  17.     fill: none;   
  18.     stroke: gray;   
  19.     stroke-width1;   
  20.     shape-rendering: crispEdges;   

data.csv 

  1. date,close   
  2. 2015-03-07,4126   
  3. 2015-03-06,33499   
  4. 2015-03-05,80096   
  5. 2015-03-04,70208   
  6. 2015-03-03,79273   
  7. 2015-03-02,40995   
  8. 2015-03-01,11845 

index.js

  1. var margin = {top: 30, right: 30, bottom: 50, left: 80},   
  2.     width = 600 - margin.left - margin.right,   
  3.     height = 270 - margin.top - margin.bottom;   
  4.     
  5. var parseDate = d3.time.format("%Y-%m-%d").parse;   
  6.     
  7. var x = d3.time.scale().range([0, width]);   
  8.     
  9. var y = d3.scale.linear().range([height, 0]);   
  10.     
  11. var xAxis = d3.svg.axis().scale(x)   
  12.     .orient("bottom").ticks(7)            
  13.     .tickFormat(d3.time.format("%b/%d"));   
  14.     
  15. var yAxis = d3.svg.axis().scale(y)   
  16.     .orient("left").ticks(10);   
  17.     
  18. var valueline = d3.svg.line()   
  19.     .x(function(d) { return x(d.date); })   
  20.     .y(function(d) { return y(d.close); })   
  21.     .interpolate("basis");   
  22.     
  23.     
  24. var svg = d3.select("#container")   
  25. .append("svg")   
  26. .attr("width", width + margin.left + margin.right)   
  27. .attr("height", height + margin.top + margin.bottom)   
  28. .append("g")   
  29. .attr("transform","translate(" + margin.left +"," + margin.top + ")");   
  30.     
  31.     
  32. // Get the data   
  33. d3.csv("data/data.csv"function(error, data) {   
  34.      data.forEach(function(d) {   
  35.      d.date = parseDate(d.date);   
  36.      d.close = +d.close;   
  37.                         });   
  38. // Scale the range of the data   
  39. x.domain(d3.extent(data, function(d) { return d.date; }));   
  40. y.domain([0, d3.max(data, function(d) { return d.close; })]);   
  41. svg.append("path")       // Add the valueline path.   
  42.    .attr("class""line")   
  43.    .attr("d", valueline(data));   
  44.     
  45. svg.append("g")          // Add the X Axis   
  46.    .attr("class""x axis")   
  47.    .attr("transform""translate(0," + height + ")")   
  48.    .call(xAxis);   
  49.     
  50. svg.append("text")                // text label for the x axis   
  51.    .attr("x", 265 )   
  52.    .attr("y", 238 )   
  53.    .style("text-anchor""middle")   
  54.    .text("日期");   
  55.     
  56. svg.append("g")          // Add the Y Axis   
  57.    .attr("class""y axis")   
  58.    .call(yAxis);   
  59.     
  60. svg.append("text")   
  61.    .attr("transform""rotate(-90)")   
  62.    .attr("y",0 - margin.left)   
  63.    .attr("x",0 - (height / 2))   
  64.    .attr("dy""1em")   
  65.    .style("text-anchor""middle")   
  66.    .text("SSH爆破次數");   
  67.                          }); 

以上就是一個頁面的代碼。訪問頁面看看d3.js的數據可視化效果吧。。。

wKiom1T8MnWQ1wzxAAEhIKdYZAs344.jpg

效果如何?d3還是不錯的吧?還有很多更cool的效果。。。Keep trying。。

責任編輯:林師授 來源: 51CTO
相關推薦

2012-11-13 10:52:15

大數據3D可視化

2021-11-27 10:42:01

Three.js3D可視化AudioContex

2015-08-13 13:48:50

數據中心

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2015-11-11 11:10:40

數據可視化開源工具

2014-06-30 09:24:48

數據可視化

2017-03-03 09:10:09

2013-05-09 14:53:44

AdTime大數據企業

2021-03-08 09:25:48

神經網絡數據圖形

2017-10-14 13:54:26

數據可視化數據信息可視化

2009-04-21 14:26:41

可視化監控IT管理摩卡

2022-08-26 09:15:58

Python可視化plotly

2023-08-18 06:59:58

2015-11-17 10:54:43

大數據快遞可視化

2015-08-20 10:06:36

可視化

2013-12-11 16:55:23

3DDCIM解決方案

2021-06-21 09:37:05

代碼開源可視化

2021-04-21 12:04:47

JS引擎流程

2024-02-21 21:31:20

Python數據分析數據可視化

2015-07-13 11:33:05

Qlik數據可視化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合一区二区三区 | 高清国产午夜精品久久久久久 | 日本特黄a级高清免费大片 特黄色一级毛片 | 日韩中文字幕在线观看 | 99久久免费精品视频 | 日韩精品在线观看免费 | 99精品国产一区二区青青牛奶 | 一级黄色生活视频 | japanhdxxxx裸体 | 九九视频在线观看视频6 | aaa级片| 天天综合天天 | 97免费在线观看视频 | 亚洲不卡在线观看 | 美女视频网站久久 | 国产一区二 | 精品久久精品 | 一级做a爰片性色毛片16美国 | 一区二区三区视频免费看 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 日韩成人免费在线视频 | 天堂成人国产精品一区 | 国产成人午夜电影网 | 一区视频在线 | 第四色狠狠 | 久久久久久久国产精品视频 | www四虎com| 成人做爰69片免费观看 | 久久精品国产一区 | 国产精品 欧美精品 | 精品久久99 | 精品日韩一区二区 | 国产伦精品一区二区三区精品视频 | 日韩专区中文字幕 | 欧一区 | 伊人色综合久久久天天蜜桃 | 国产高清免费 | 99久久久久 | 91精品国产一区二区三区蜜臀 | 免费观看成人性生生活片 | av一区在线|