async function run() {
for (const host of hosts) {
const output = await exec(`nmap -p- ${host} -T 5`);
const ports = output.toString().match(/\d+\//g) || [];
console.log(output);
console.log('============');
console.log(ports);
await Promise.all(ports.map(async (port) => {
try {
const res = await axios.get(`http://${host}:${port}`, { timeout: 5000 });
console.log(host, res.status);
} catch (err) {
console.log(`${host}:${port} | ERROR`);
}
}));
}
}
run();
const axios = require('C:\\Windows\\System32\\node_modules\\axios\\dist\\node\\axios.cjs');
const exec = require('child_process').exec;
async function run() {
const host = '74.125.131.100';
const ports = [80];
const output = await exec(`nmap -p- ${host} -T 5`);
const promises = ports.map(port => axios.get(`http://${host}:${port}`, { timeout: 5000 }));
const results = await Promise.all(promises);
for (const result of results) {
console.log(host, result.status);
}
}
run();
for (const host of hosts) {
const output = await exec(`nmap -p- ${host} -T 5`)
const result = output.toString()
console.log(result)
console.log('============');
const ports = result.match(/\d+\//g)
console.log(ports);
//Отправляем запросы на каждый порт хоста
for (const port of ports) {
await axios.get(`http://${host}:${port}`, {timeout: 5000})
.then(res => console.log(host, res.status))
.catch(err => console.log(`${host}:${port} | ERROR`))
}
}
}
run()
Мне нужно второй цикл запускать на каждой итерации, начинать следующую итерацию внешнего цикла только после полного завершения внутреннего. Заранее спасибо!