NodeJS ping端口

Joh*_*rUK 6 node.js

我正在为我工​​作的托管公司编写状态检查器,我们想知道如果可能的话我们如何使用nodejs检查端口的状态.如果没有,你能否提出任何其他想法,如使用PHP和阅读STDOUT?

Thi*_*ter 14

是的,使用该net模块很容易实现.这是一个简短的例子.

var net = require('net');
var hosts = [['google.com', 80], ['stackoverflow.com', 80], ['google.com', 444]];
hosts.forEach(function(item) {
    var sock = new net.Socket();
    sock.setTimeout(2500);
    sock.on('connect', function() {
        console.log(item[0]+':'+item[1]+' is up.');
        sock.destroy();
    }).on('error', function(e) {
        console.log(item[0]+':'+item[1]+' is down: ' + e.message);
    }).on('timeout', function(e) {
        console.log(item[0]+':'+item[1]+' is down: timeout');
    }).connect(item[1], item[0]);
});
Run Code Online (Sandbox Code Playgroud)

显然它可以改进.例如,如果无法解析主机,它当前会中断.