有关如何以编程方式与nmap集成的任何想法?

问题描述:

我刚开始研究如何将nmap(一种开源的安全产品)整合到一些C++代码中。如果有人试过这个,并且对最佳方法有一些想法,我当然会很感激。有关如何以编程方式与nmap集成的任何想法?

感谢您的回复。具体来说,我想运行端口扫描(ipv6)。我肯定会更喜欢非gpl解决方案,如命令行或套接字接口。然而,我也是这样想的,我正在寻找最快的解决方案,因为我们正面临一些严格的时间表,我们可以在必要的情况下支持实施non-gpl解决方案。

+0

哇,什么毫无意义的编辑凹凸... – Alnitak 2017-03-15 09:40:26

“整合”并没有说得太多。你想做什么样的事情?根据“集成”的级别,将nmap作为单独的进程运行并捕获其输出可能就足够了。这样做的好处是可以在不重建应用的情况下更新nmap的版本。如果你需要更紧密的耦合,那么它取决于你需要什么功能和“library-izing”nmap,但要注意它是GPL代码,这种整合将需要你的应用程序的源代码分发。

你在寻找使用特定的功能块?我发现在其他语言中使用nmap的简单方法是使用-oX开关将其吐出xml。有一个DTD(以及许多方法可将这个转换为xsd,用于您喜爱的绑定工具),您可以使用它来使用这些数据。

鉴于您使用C++编写,虽然如果您需要,它可能很容易直接链接。

您可以随时在管道中读取它。根据传统,即使非GPL访问GPL也是可以接受的。

+0

请注意,在我的答案中,我特别指出了Nmap许可证,他们澄清说他们认为要创建衍生作品(并因此要求您根据GPL如果你想重新分配GPL的代码)。 – 2009-04-10 04:28:00