diff --git a/index.js b/index.js index 56f6b1a..712ab62 100755 --- a/index.js +++ b/index.js @@ -32,7 +32,28 @@ const apiResponse = { data: null }; +const apiRequests = { '127.0.0.1': 0 }; + app.get( '/api/getDeviceStatus/:ipAddress', async ( req, res ) => { + + if( apiRequests[req.socket.remoteAddress] ) + { + if( apiRequests[req.socket.remoteAddress] > 100 ) + { + res.status( 429 ); + res.end(); + return; + } + else + { + apiRequests[req.socket.remoteAddress]++; + setTimeout( () => { apiRequests[req.socket.remoteAddress]--; }, 5000 ); + } + } + else + { + apiRequests[req.socket.remoteAddress] = 1; + } console.log( 'Loading device status for ' + req.params.ipAddress + '...' ); let ping_response = await ping.promise.probe(req.params.ipAddress, {