📜  nmap 查找网络上的所有主机 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:33:07.797000             🧑  作者: Mango

使用nmap查找网络上的所有主机 - TypeScript

在网络上寻找所有主机是一个常见的任务。使用nmap,这个工作可以迅速完成。nmap是一个流行的网络扫描工具,它可以扫描并分析主机、端口和服务。

在本文中,我们将学习如何使用TypeScript编写一个简单的nmap程序,以查找网络上的所有主机。我们将使用ip-subnet-calculator包来帮助我们计算IP地址。让我们开始吧!

安装依赖

我们需要安装以下依赖:

在终端中运行以下命令来安装这些依赖:

sudo apt-get install nmap
npm install node-nmap ip-subnet-calculator
编写代码

我们现在可以编写我们的TypeScript代码。我们将编写一个名为nmap-scan.ts的文件,并将以下代码复制到该文件中:

import * as Nmap from 'node-nmap';
import { SubnetCalculator } from 'ip-subnet-calculator';

// 初始化nmap实例
const nmap = new Nmap.Nmap();

// 扫描地址段
const subnet = '192.168.0.0/24'; // 你的IP地址段
const subnetObj = SubnetCalculator.calculate(subnet);
const hosts = subnetObj.hosts.map(host => host.hostAddress);

hosts.forEach(host => {
  nmap.scan({
    hosts: host,
    ports: '1-65535',
    timeout: 1000,
    done: (err, report) => {
      if (err) {
        console.error(err);
        return;
      }

      console.log(`Host: ${report[0].host} (${report[0].addresses[0]}) is up.`);
    }
  });
});

让我们逐行了解这个代码的功能:

  1. 首先,我们导入了node-nmapip-subnet-calculator包。
  2. 然后,我们创建了一个名为nmap的nmap实例。
  3. 我们指定了一个IP地址段,并使用SubnetCalculator计算主机列表。
  4. 对于每个主机,我们使用nmap实例进行扫描,并在扫描结束时输出主机的信息。
运行代码

现在我们准备好运行我们的程序了。在终端中运行以下命令:

npx ts-node nmap-scan.ts

或者,您可以编译TypeScript代码并运行生成的JavaScript文件:

tsc nmap-scan.ts
node nmap-scan.js

接下来,您应该会看到输出了您IP地址段中所有主机的信息。

结论

在本文中,我们学习了如何使用TypeScript编写一个简单的nmap程序,以扫描网络中的所有主机。我们使用了node-nmapip-subnet-calculator包,这些包帮助我们实现了这个功能。如果您有任何疑问或评论,请告诉我们。