【发布时间】:2013-02-08 12:14:55
【问题描述】:
我想知道是否有办法扫描我的本地网络的 IP 范围以查找特定编号的开放端口。
基本上我正在寻找nodejs 来查找特定类型的客户端,而无需知道他们的IP 地址。在这种情况下,RFID 阅读器会监听 14150 端口。
我希望此扫描快速,因此我不希望每个 IP 地址之间的超时时间过长。对于最多 255 个客户端的整个本地 IP 范围(不包括我自己的 IP),它们应该都发生得相当快,可能在几秒钟内max。
我编写的代码可以执行我想要的操作,但速度非常慢...我想看看如何通过快速连接并在无法在 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();
【问题讨论】:
-
您也可以查看github.com/danielzzz/node-portchecker他的代码可能会为您指明正确的方向
标签: node.js networking