Chciałbym wiedzieć, czy istnieje sposób na skanowanie w zakresie IP mojej sieci lokalnej dla otwartych portów o określonym numerze.Czy mogę szybko skanować sieć lokalną pod kątem określonych otwartych portów?
Zasadniczo szukam nodejs
, aby znaleźć klientów określonego typu bez znajomości ich adresów IP. W tym przypadku czytniki RFID, które nasłuchują na porcie 14150.
Chciałbym, aby to skanowanie było szybkie, więc nie chcę długiego czasu między poszczególnymi adresami IP. Powinny się zdarzyć dość szybko, być może w ciągu kilku sekund max dla całego lokalnego zakresu adresów IP do 255 klientów, z wyłączeniem własnego adresu IP.
Napisałem kod, który robi to, co chcę, ale jest boleśnie powolny ... Chciałbym zobaczyć, jak mogę to przyspieszyć, przepuszczając połączenia i wychodząc, jeśli nie można nawiązać połączenia z danym adresem IP w ciągu 20 ms . Chcę uchwycić rzeczywiste połączenia w tablicy, które będę mógł wykorzystać w innym celu.
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();
To byłby dobry start: http://www.hacksparrow.com/a-port-scanner-in-node-js.html –
Możesz również sprawdzić https://github.com/danielzzz/node -portowanie jego kodu może wskazywać ci właściwy kierunek. – Jack