2010-05-30 41 views
0

为了我自己的兴趣,我想编写一个应用程序,以图形方式将某些网络概念可视化。基本上我想显示来自ping,traceroute和nmap等工具的输出。在另一个程序中包含工具的功能吗?

最明显的方法似乎是使用管道从我的C程序中调用了这些工具,并处理它们返回的信息。但是,如果可能的话,我想尽量避免这种严厉的做法。我的问题是,是否有可能以某种方式与这些工具链接,或者是否有可用于获取编程式访问权限的API?如果是这样,这种行为是否仅在一个工具的基础上可用?

为希望做到这一点

一个原因是把一切都在一个单一的过程/地址空间,以避免对这些外部工具的Dependance。例如,如果我编写了一个iphone应用程序,那么我将无法派生进程来调用外部工具本身。

感谢您的任何意见或建议。

回答

1

在您选择的平台的网络API是所有你需要的本质。 ping,traceroute和nmap没有任何魔法,他们所做的只是通过网络发送和接收数据包。

我不知道任何现有的库虽然(不,我已经看过其一)。如果说到这一点,至少ping和traceroute是手工实现的相当微不足道。

1

我依赖于您正在开发的平台。例如,Windows有一个ICMP API,您可以使用它来实现ping工具。

另一方面,ping和traceroute的源代码在任何Linux系统上都可用,因此您可以使用它(提供的许可证与您的需求兼容)作为您自己的程序的基础。

最后,中国平安(ICMP)是不难实现和traceroute建立在平的顶部。推出自己的实现可能是值得的。

+0

噢,我想我可能只是看一个Linux发行版,看看自己是怎样的工具来实现。比我希望做的更多的工作,但这将是一个很好的学习经验。 – 2010-05-31 01:15:22

相关问题