Apache 需要做一个端口检测器吗
我正在尝试做一个服务,它可以检测端口何时被占用。 因此Apache 需要做一个端口检测器吗,apache,networking,port,daemon,netstat,Apache,Networking,Port,Daemon,Netstat,我正在尝试做一个服务,它可以检测端口何时被占用。 因此netstat-lntu | grep tcp可以列出所有占用的端口。因此,第一个netstatexecution的输出与a端口被占用后的输出之间的差异可以得到端口值 它需要完全自动化,所以我做了一个无限循环,它将持续检查两个连续的netstat之间的差异 这是我在js中的代码,我正在使用: 现在这个东西工作得很好,但是资源很重。那么,有没有一种方法可以让它变得轻松,或者有一种全新的更有效的方法来解决这个问题呢?您需要什么频率来进行验证?如果
netstat-lntu | grep tcp
可以列出所有占用的端口。因此,第一个netstat
execution的输出与a端口被占用后的输出之间的差异可以得到端口值
它需要完全自动化,所以我做了一个无限循环,它将持续检查两个连续的netstat
之间的差异
这是我在js中的代码,我正在使用:
现在这个东西工作得很好,但是资源很重。那么,有没有一种方法可以让它变得轻松,或者有一种全新的更有效的方法来解决这个问题呢?您需要什么频率来进行验证?如果您的循环持续运行,它将消耗您的CPU。您可以在每个循环之间添加一个睡眠,以减少对服务器的影响,并且仍然可以得到符合您需要的结果。我需要在端口被占用时立即检测端口。因此,也许可以使用某种事件触发器来代替循环?请查看以下内容:。显然,iptables和snort可以提供帮助。
var shell = require("shelljs");
var InfiniteLoop = require("infinite-loop");
var il = new InfiniteLoop();
var diff = require('diff');
var oldStr = '';
var newStr = '';
shell.exec("netstat -lntu | grep tcp",{silent:true}, function (code, output, error) {
oldStr = output;
});
il.add(function () {
shell.exec("netstat -lntu | grep tcp",{silent:true}, function (code, output, error) {
newStr = output;
if(!newStr.replace(oldStr,'')==''){
var dD = diff.diffChars(oldStr, newStr)[1];
if(dD.added){
let value = dD.value.replace(/\n/g,'');
re = /[0-9][0-9][0-9][0-9]/
value = re.exec(value);
console.log(value[0]);
}
}
oldStr = newStr;
});
});
il.run();