【问题标题】:Javascript opened ports scannerJavascript 开放端口扫描器
【发布时间】:2020-05-21 15:46:28
【问题描述】:

我正在使用 node.js 在 js 中进行 ip 端口扫描。 我使用如下命令启动一个函数:>getports 127.0.0.0 我想查看所有可用于拒绝服务的端口。

这是我的代码:

const { exec } = require('child_process');

exec(`netstat -an ${args[0]} | findstr "ESTABLISHED"`, (error, stdout, stderr) => {
  if(error){
    console.log(`exec error: ${error}`);
    return;
  }else if(stdout){
    console.log(`Found :\n${stdout.slice(0, 1980)}`); // I just want the 1980 first chars
    return;
  }else if(stderr){
    console.log(`stderr: ${stderr}`);
    return;
  }
});

执行的命令:netstat -an 127.0.0.0 | findstr "已建立"

我被阻止了,因为这个过程永远不会结束。所以我从来没有得到回应......

【问题讨论】:

  • 只是一个建议:“ETABLISHED”似乎是拼写错误。
  • 是的mb,我改了,但没有解决我的问题:/
  • 您希望在 args[0] 中出现什么?你可以 console.log 执行字符串吗?
  • args[0]是我在命令中提供的ip地址*
  • javascript 在我的机器上运行。请在控制台中运行命令netstat -an 127.0.0.1 | findstr "ESTABLISHED",以确保该命令在您的机器上运行。

标签: javascript node.js ip port child-process


【解决方案1】:
  1. 执行

此方法将生成一个子 shell 并在该 shell 中执行命令并缓冲生成的数据。当子进程完成时,回调函数将被调用: 命令执行成功时缓存的数据

当您从 cmd 运行 netstat -an 127.0.0.1 时,您可以看到该命令仍在继续运行,直到您发送停止信号...

所以,如果你想将输出输出到缓冲区,我建议你生成一个 cmd.exe 并从中执行 netstat.exe

function run_cmd(cmd, args, cb, end) {
var spawn = require('child_process').spawn,
    child = spawn(cmd, args),
    me = this;
child.stdout.on('data', function (buffer) { cb(me, buffer) });
child.stdout.on('end', end);
}

// Run C:\Windows\System32\netstat.exe -an
var foo = new run_cmd(
    'netstat.exe', ['-an'],
    function (me, buffer) { me.stdout += buffer.toString() },
    function () { console.log(foo.stdout) }
);

类似的东西

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多