13

私が働いているホスティング会社のステータスチェッカーを書いています。可能であれば、nodejsを使用してポートのステータスを確認する方法を考えています。そうでない場合は、PHP の使用や STDOUT の読み取りなど、他のアイデアを提案できますか?

4

2 に答える 2

24

はい、これは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]);
});

改善できることは明らかです。たとえば、現在、ホストを解決できない場合は中断されます。

于 2012-05-23T15:52:41.113 に答える