2016-08-22 6 views
-1

私はnode.jsを使用してディレクトリの後ろにディレクトリIPを持つサーバの応答をチェックする方法を見つけるのに苦労しています。私はポートだけでサーバーにpingできますが、必要なものはありません。IPとディレクトリを持つNode.JS pingサーバ

URL

127.0.0.1:9191/api/WebApis

私のコード今のところ

var net = require('net'); 
var hosts = [['127.0.0.1:9191/api/WebApis', 9191]]; 

setInterval(function(){ 
    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]); 
    }); 
}, 1000); 

ノードJS出力

127.0.0.1:9191/api/WebApis:9191 is down: getaddrinfo ENOTFOUND 127.0.0.1:9191/api/WebApis127.0.0.1:9191/api/WebApis:9191

+0

ディレクトリにpingを実行できません。 –

+0

ディレクトリにできるものは、プロトコルによって多くのものがあります。 HTTPプロトコルでは、通常はディレクトリですが、実際にはパスと呼ばれます(時には別のものになることもあります)。そのパスが存在するかどうかを確認するには、HTTPサーバーに接続し、そのパスに対してHTTP要求を行い、返されたステータス(200,404)をチェックする必要があります。 –

+0

これは、ディレクトリがpingできないことが少し狂っているようです... – Brent

答えて

-1

私たちではありませんよnodejsネットパッケージを介してpingを実行するにはエド、私は

var hosts = [['as.com:80', 80]]; 

はこのエラーを得ながら

var hosts = [['as.com', 80]]; 

は、仕事をすることがわかった本当のウェブサイトに対するあなたのコードをテスト:

as.com:80:80 is down: getaddrinfo ENOTFOUND

とで実際には、エラー報告でポートが2回設定されているようです:

127.0.0.1:9191/api/WebApis:9191 is down: getaddrinfo ENOTFOUND

また、127.0.0.1:9191で提供されているローカルPHPプロジェクトでテストを行いました。

だから多分あなただけのホスト要素の文字列部分にポート情報をカットする必要があります。

var hosts = [['127.0.0.1/api/WebApis', 9191]]; 

私はこのことができます願っていますが、私が言ったように私はこのパッケージには慣れていません。

+0

これを試してみましたが、うまくいきませんでした – Brent

関連する問題