Guest User

Untitled

a guest
Jul 22nd, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. const speedTest = require('speedtest-net');
  2. const mysql = require('mysql');
  3. const cron = require('node-cron');
  4. const ping = require('ping');
  5. const dns = require('dns');
  6.  
  7. var pool = mysql.createPool({
  8. host: 'localhost',
  9. user: 'ROOT',
  10. password: 'PASSWORD',
  11. database: 'speedtester'
  12. });
  13.  
  14. var cachedTarget = 'speedtest.net'
  15.  
  16. function testSpeeds() {
  17. var test = speedTest({maxTime: 5000});
  18. test.on('data', data => {
  19.  
  20. cachedTarget = data.server.host
  21.  
  22. pool.getConnection(function(err, connection) {
  23. if (err) throw err;
  24.  
  25. var values = {download: data.speeds.originalDownload, upload: data.speeds.originalUpload}
  26. var sql = 'INSERT INTO speeds SET ?';
  27. connection.query(sql, values, function (err, res) {
  28. connection.release();
  29. if (err) throw err;
  30.  
  31. console.log(`Download: ${values.download}, upload: ${values.upload}`)
  32. });
  33. });
  34. });
  35.  
  36. test.on('error', err => {
  37. console.error(err);
  38.  
  39. pool.getConnection(function(err, connection) {
  40. if (err) throw err;
  41.  
  42. var values = {download: null, upload: null}
  43. var sql = 'INSERT INTO speeds SET ?';
  44. connection.query(sql, values, function (err, res) {
  45. connection.release();
  46. if (err) throw err;
  47.  
  48. console.log(`Download: ${values.download}, upload: ${values.upload}`)
  49. });
  50. });
  51. });
  52. }
  53.  
  54. function testPing() {
  55. ping.promise.probe(cachedTarget, {
  56. timeout: 10,
  57. extra: ['-c', '2'],
  58. }).then(function (pingRes) {
  59. console.log(pingRes);
  60.  
  61. pool.getConnection(function(err, connection) {
  62. if (err) throw err;
  63.  
  64. var values = {result: pingRes.min}
  65. var sql = 'INSERT INTO pings SET ?';
  66. connection.query(sql, values, function (err, res) {
  67. connection.release();
  68. if (err) throw err;
  69.  
  70. console.log(`Ping: ${values.result}`)
  71. });
  72. });
  73. });
  74. }
  75.  
  76. function getPing(host, callback) {
  77. ping.sys.probe(host, function(isAlive){
  78. var msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead';
  79. console.log(msg);
  80. }, { timeout: 10 });
  81. }
  82.  
  83. cron.schedule('*/30 */1 * * * *', function(){
  84. console.log('running test');
  85. testPing();
  86. });
  87.  
  88. cron.schedule('0 */5 * * * *', function(){
  89. console.log('running test');
  90. testSpeeds();
  91. });
Add Comment
Please, Sign In to add comment