Как определить, доступен ли хост?
как я могу определить, является ли определенный IP-адрес подключаемым?
мне нужно написать небольшой node.js
образец, который пытается подключиться к ip:port
и возвращает true
или false
, таким образом, определяя, доступен ли хост или нет.
2 ответов
var options = {
host: 'www.google.com',
port: 80,
path: '/index.html'
};
http.get(options, function(res) {
if (res.statusCode == 200) {
console.log("success");
}
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
function testPort(port, host, cb) {
http.get({
host: host,
port: port
}, function(res) {
cb("success", res);
}).on("error", function(e) {
cb("failure", e);
});
}
для сокета tcp просто используйте net.createConnection
function testPort(port, host, cb) {
net.createConnection(port, host).on("connect", function(e) {
cb("success", e);
}).on("error", function(e) {
cb("failure", e);
});
}
Если вас интересует только HTTP, вы можете использовать запрос HTTP HEAD (а не POST / GET):
function hostAvailable(url) {
var req = new XMLHttpRequest();
req.open('HEAD', url, false);
req.send();
return req.status!=404;
}