Mi piacerebbe sapere se c'è un modo per scansionare l'intervallo IP della mia rete locale per porte aperte di un numero specifico.Posso eseguire rapidamente la scansione della mia rete locale per porte aperte specifiche?
In sostanza sto cercando nodejs
per trovare client di un tipo specifico senza conoscere i loro indirizzi IP. In questo caso, lettori RFID che ascoltano sulla porta 14150.
Mi piacerebbe che questa scansione fosse veloce, quindi non voglio un lungo timeout tra ogni indirizzo IP. Dovrebbero accadere tutti piuttosto rapidamente, forse entro pochi secondi max per un intero intervallo IP locale fino a 255 client, escluso il mio stesso IP.
Ho scritto codice che fa quello che voglio ma è dolorosamente lento ... Mi piacerebbe vedere come posso farlo più velocemente sfogliando le connessioni e uscendo se una connessione non può essere fatta per un dato IP entro 20 ms . Voglio catturare le connessioni effettive in un array che posso quindi utilizzare per un altro scopo.
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();
Questo sarebbe un buon inizio: http://www.hacksparrow.com/a-port-scanner-in-node-js.html –
È anche possibile controllare https://github.com/danielzzz/node -portchecker il suo codice potrebbe indirizzarti nella giusta direzione – Jack