我的项目是用 Nodejs 编写的。我需要知道如何检查具有端口的 IP 是否可以连接到。
例如: 检查 example1.com 443 =>true ; 检查 example1.com 8080 =>false
谢谢
最佳答案
了解服务器/端口是否可用的唯一方法是尝试实际连接到它。如果您知道服务器响应 ping,则可以在服务器外运行 ping,但这只会告诉您主机是否正在运行并响应 ping,它不会直接告诉您是否要连接到服务器进程正在运行并接受连接。
真正知道它正在运行并接受连接的唯一方法是实际连接到它并报告它是否成功(注意这是一个异步操作):
var net = require('net');
var Promise = require('bluebird');
function checkConnection(host, port, timeout) {
return new Promise(function(resolve, reject) {
timeout = timeout || 10000; // default of 10 seconds
var timer = setTimeout(function() {
reject("timeout");
socket.end();
}, timeout);
var socket = net.createConnection(port, host, function() {
clearTimeout(timer);
resolve();
socket.end();
});
socket.on('error', function(err) {
clearTimeout(timer);
reject(err);
});
});
}
checkConnection("example1.com", 8080).then(function() {
// successful
}, function(err) {
// error
})
关于javascript - 如何检查服务器和端口在 nodejs 中是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29069111/