Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.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
Objective c 网络拓扑信息_Objective C_C_Networking_Network Programming_Topology - Fatal编程技术网

Objective c 网络拓扑信息

Objective c 网络拓扑信息,objective-c,c,networking,network-programming,topology,Objective C,C,Networking,Network Programming,Topology,我有一个小型企业网络,有几个交换机、终端设备,但只有一个路由器。我想像图形一样显示网络拓扑(路由器在顶部) 我只能访问网络层地址,因此我设法为网络上的每个设备获取其ip地址和ip网络,即设备具有的每个接口的192.168.2.9和192.168.2.0(掩码255.255.255.0) 我的猜测是,我可以分析数据并建立网络的逻辑连接。所以,我想问的是,我是否在正确的路径上了解网络拓扑(至少对于它的逻辑连接) 这都是通过编程(c和objective-c)完成的,并且是针对学校项目的 另外:有人知道

我有一个小型企业网络,有几个交换机、终端设备,但只有一个路由器。我想像图形一样显示网络拓扑(路由器在顶部)

我只能访问网络层地址,因此我设法为网络上的每个设备获取其ip地址和ip网络,即设备具有的每个接口的192.168.2.9和192.168.2.0(掩码255.255.255.0)

我的猜测是,我可以分析数据并建立网络的逻辑连接。所以,我想问的是,我是否在正确的路径上了解网络拓扑(至少对于它的逻辑连接)

这都是通过编程(c和objective-c)完成的,并且是针对学校项目的


另外:有人知道有哪个库可以绘制(给定此信息)拓扑吗?

因此,您已经拥有了每个设备的IP地址,这是一个有用的开始。从这里开始,“手动算法”可能是:

for each ip in devices
  traceroute ip
    for each hop in traceroute
      add hop to graph (if it's not there already)
您所做的是将您和设备之间的每个网络跳添加到图形结构中。如果已找到节点(跃点),则添加新边。如果不是,则添加边和顶点。最终结果将是网络上每个节点的图形以及到达它们的路径—拓扑

所以,您所要做的就是自己实现traceroute,构建图形结构来存储traceroute运行的结果,然后制作一些东西来很好地绘制它!每一个问题都可能产生许多自己的问题


既然您已经标记了这个Objective-C,我将跳过一步,假设您正在Mac上执行此操作。如果是这样的话,Cocoa的绘图API可以很好地满足您的图形需求。

要绘制图形,最简单的方法可能是用点输出一个文件,然后用graphviz将其绘制。

不知道网络拓扑和其他信息,但可能可以提供您需要的绘图功能(另请参见)。我不知道它是如何实现的,但我知道很多监控工具(包括OpenNMS)都能做到这一点(尽管是用Java实现的OpenNMS)。同样,我知道HP的SAV工具(与HP的服务器自动化工具一起提供)可以与网络自动化结合使用。我想你已经
nmap
'd了你的环境?而且,这看起来像是基于你之前的问题:@warren是的,是的。有什么问题我可以再问一个问题吗?没问题,只是想让大家知道你在这个话题上问了一个问题,这是一个后续问题:)是的,我在Linux和Mac上都做了,所以我可以使用Cocoa的绘画。问题是我没有用可可,也没有太多时间学习。因此,我必须使用学习速度最快、文档最多的任何库。我不知道你的项目的全部范围,但如果你能接受@CodeninjaTim下面的建议,那对你来说就容易多了(困难的一点不是画直线和矩形,而是弄清楚如何布置Cocoa帮不了你的情节).Cocoa绘图非常简单,苹果的教程也非常好,但如果你真的这样做了,我发现这是非常有帮助的第一篇介绍。谢谢@Codeninja,最终的答案将是两件事都做,运行@Tim提出的伪算法,并在编写网络专用点文件的过程中。