Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有关于如何以编程方式与nmap集成的想法? 我刚刚开始研究如何将NMAP(开源安全产品)集成到一些C++代码中。如果有人尝试过这个方法,并且对最佳方法有一些想法,我当然会非常感激_C++_Security_Integration_Nmap - Fatal编程技术网

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

有没有关于如何以编程方式与nmap集成的想法? 我刚刚开始研究如何将NMAP(开源安全产品)集成到一些C++代码中。如果有人尝试过这个方法,并且对最佳方法有一些想法,我当然会非常感激,c++,security,integration,nmap,C++,Security,Integration,Nmap,谢谢你的回复。具体来说,我想运行端口扫描(ipv6)。我当然更喜欢非gpl解决方案,比如命令行或套接字接口。然而,在这一点上,我也在寻找最快的解决方案,因为我们面临一些严格的时间表,如果必要的话,我们可以回溯实现非gpl解决方案。“集成”还不够。你想做什么样的事情?根据“集成”的级别,将nmap作为单独的进程运行并捕获其输出可能就足够了。这样做的好处是,您可以更新nmap的版本,而无需重新构建应用程序。如果您需要更紧密的耦合,那么这取决于您需要什么功能和“库化”nmap,但请注意,这是GPL代码

谢谢你的回复。具体来说,我想运行端口扫描(ipv6)。我当然更喜欢非gpl解决方案,比如命令行或套接字接口。然而,在这一点上,我也在寻找最快的解决方案,因为我们面临一些严格的时间表,如果必要的话,我们可以回溯实现非gpl解决方案。

“集成”还不够。你想做什么样的事情?根据“集成”的级别,将nmap作为单独的进程运行并捕获其输出可能就足够了。这样做的好处是,您可以更新nmap的版本,而无需重新构建应用程序。如果您需要更紧密的耦合,那么这取决于您需要什么功能和“库化”nmap,但请注意,这是GPL代码,这种集成将需要应用程序的源代码分发。

“集成”实际上还不够。你想做什么样的事情?根据“集成”的级别,将nmap作为单独的进程运行并捕获其输出可能就足够了。这样做的好处是,您可以更新nmap的版本,而无需重新构建应用程序。如果您需要更紧密的耦合,则这取决于您需要什么功能和“库化”nmap,但请注意,这是GPL代码,这种集成需要应用程序的源代码分发。

您是否希望使用特定的功能?我发现在其他语言中使用nmap的一个简单方法是使用-oX开关将其吐出xml。您可以使用DTD(以及多种方法将其转换为您喜爱的绑定工具的xsd)来使用数据


如果你用C++编写,如果你需要的话,直接链接可能很容易。

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

如果你用C++编写,如果你需要的话,直接链接可能很容易。

(注:我不是律师,也不应该被当作法律建议)< /P> 您可能应该注意到,根据手册中的说明,Nmap将解析其输出的产品视为派生作品,因此属于GPL许可义务。《版权法》没有定义衍生作品是什么,而是让法院根据版权法的定义来定义。通常的解释是,除了链接到操作系统中包含的系统库之外,任何形式的链接都会使链接的工作成为派生工作,而通过管道或网络进行讨论的单独过程不一定是派生工作,尽管如,“如果通信的语义足够亲密,交换复杂的内部数据结构,这也可能是将这两个部分结合成一个更大的程序的基础。”这似乎是NMAP开发人员正在进行的解释。 无论如何,假设您不需要担心GPL,您可能希望查看for Nmap;特别是,
-oX
用于XML输出,
-oG
用于“greppable”输出。如果您需要更多地控制Nmap的功能,您应该查看,Nmap中的Lua脚本引擎可以为您提供各种控制。

(注:我不是律师,所有这些都不应被视为法律意见)

您可能应该注意到,根据手册中的规定,Nmap将解析其输出的产品视为衍生作品,因此属于GPL许可义务。GPL没有定义衍生作品是什么,而是让法院根据版权法中的定义来定义。通常的解释是除了链接到操作系统中包含的系统库之外,任何形式的链接都会使链接的工作成为派生工作,而通过管道或网络进行对话的单独过程不一定是派生工作,尽管如如果通信的语义足够亲密,交换复杂的内部数据结构,这也可能是将这两个部分结合成一个更大的程序的基础。“这似乎是NMAP开发人员正在进行的解释。


无论如何,假设您不需要担心GPL,您可能希望查看for Nmap;特别是,
-oX
用于XML输出,
-oG
用于“greppable”"输出。如果您需要对Nmap的功能进行更多控制,您应该研究,Nmap中的Lua脚本引擎可以提供各种控制。

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

您始终可以在管道中读取它。根据传统,即使如果非GPL访问GPL。

请注意,在我的回答中,我特别指出NMAP许可证,其中他们澄清了他们认为创建一个派生的工作(并因此要求您在GPL下授权您的派生工作,如果您想重新分配GPL代码)。但是,这是一个相当严格的解释。它允许他们从开源开发中获益,同时推动GNU再分配的普遍接受规范,更不用说GNU FAQ本身的解释了。请注意,在我的回答中,我特别指出了Nmap许可证,他们在其中澄清他们认为命令创建衍生作品(因此要求您根据