今天分享一个nodejs的demo,可以扫描出指定IP的端口开放情况。
简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。
Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。
前提:全局安装了nodejs
新建demo.js文件,代码:
// 端口扫描器
function scan(host, start, end, callback) {
var net = require('net');
var count = end - start;
var result = [];
console.time('port scan time');
for (var i = start; i <= end; i++) {
var item = net.connect({
host: host,
port: i
},
function (i) {
return function () {
result.push(i);
this.destroy();
};
}(i)
);
item.on('error', function (err) {
if (err.errno == 'ECONNREFUSED') {
this.destroy();
}
});
item.on('close', function () {
if (!count--) {
console.timeEnd('port scan time');
callback(result);
}
});
}
}
scan('127.0.0.1', 1, 65535, function (result) {
for (var i = 0; i < result.length; i++) {
console.log('端口:' + result[i]);
}
});
cmd命令中输入:
node demo.js
结果如图:
本文用Javascript实现一个端口扫描器,用于检测指定IP的电脑哪些端口是开放的,而且扫描速度非常快。
以上,就是今天的分享。