我想知道是否有办法通过我的本地网络的 IP 范围扫描特定数量的开放端口。
本质上,我正在寻找在nodejs
不知道其 IP 地址的情况下找到特定类型的客户端。在这种情况下,RFID 阅读器在端口 14150 上进行侦听。
我希望此扫描快速,因此我不希望每个 IP 地址之间的超时时间过长。它们都应该很快发生,对于多达 255 个客户端的整个本地 IP 范围(不包括我自己的 IP),最多可能在几秒钟内发生。
我编写的代码可以满足我的要求,但速度非常慢……我想看看如何通过快速连接并在 20 毫秒内无法与给定 IP 建立连接时退出来加快速度。我想捕获一个数组中的实际连接,然后我可以将其用于其他目的。
var net = require('net'); // Required to create socket connections
var ip = 254; //IP address to start with on a C class network
function checkConnect () {
ip--;
var thisIP = '192.168.1.' + ip; //concatenate to a real IP address
var S = new net.Socket();
S.connect(80, thisIP);
if(ip > 0) { checkConnect(); }
S.on('connect', function () { console.log('port 80 found on ' + thisIP); });
S.on('error', function () { console.log('no such port on ' + thisIP); });
S.end();
}
checkConnect();