0
以下は、私がnodeで書いたmy port-scannerのコードです。問題は、正しい結果を1回限り得られますが、実行中の他のインスタンスでいくつかのオープンポートをスキップします。オープンポートには22,80,443が含まれています。数回実行してもらえますか?それはすべてあなたが設定されたタイムアウトに依存なぜこのポートスキャナは毎回正確な結果を得られないのですか?
const async = require('async')
const net = require('net')
const timeout = 3000
const host = '192.30.253.113'
const openPorts = []
const concurrency = 100
const portsToScan = 2000
const q = async.queue(function(port, callback) {
const client = net.createConnection({
port: port,
host: host
},() => {
openPorts.push(port)
client.destroy()
})
client.on('error',() => {
client.destroy()
})
client.setTimeout(timeout,() => {
client.destroy()
})
client.on('close',() => {
callback()
})
}, concurrency)
for (let port = 0; port <= portsToScan; port++) {
q.push(port)
}
q.drain =() => {
console.log(openPorts)
}