我想写一个应用程序,出于我自己的兴趣,它图形化地可视化了一些网络概念。基本上,我想显示ping、traceroute和nmap等工具的输出。
最明显的方法似乎是使用管道从C程序中调用这些工具,并处理它们返回的信息。然而,如果可能的话,我希望避免这种高压手段。我的问题是,有没有可能以某种方式链接到这些工具,或者有没有API可以用来获得编程访问权限?如果是这样,这种行为是否仅在逐个工具的基础上可用?
这样做的一个原因是将所有内容都保存在单个进程/地址空间中,并避免对这些外部工具的依赖。例如,如果我编写了一个iphone应用程序,我将无法生成调用外部工具本身的进程。
感谢您的任何建议或建议。
发布于 2010-05-31 05:09:55
您所选择的平台中的网络API就是您真正需要的。ping、traceroute和nmap不会施展任何魔法,它们所做的只是在网络上发送和接收数据包。
不过,我不知道有没有任何预先存在的库(我也没有看过)。如果涉及到它,至少ping和traceroute手工实现起来相当简单。
发布于 2010-05-31 05:11:48
我依赖于您正在开发的平台。例如,Windows有一个可以用来实现ping工具的ICMP API。
另一方面,ping和traceroute的源代码在任何Linux系统上都可用,因此您可以将其用作您自己的程序的基础(前提是许可证与您的需求兼容)。
最后,ping (ICMP)并不难实现,traceroute构建在ping之上。这可能是值得的,只是滚动您自己的实现。
https://stackoverflow.com/questions/2940305
复制相似问题