我有一个小型企业网络,有几台交换机和终端设备,但只有一台路由器。我想以图表的方式显示网络拓扑(路由器在顶部)。
我只能访问网络层地址,所以我设法为网络上的每个设备获取其ip地址和ip网络,即192.168.2.9和192.168.2.0 (掩码255.255.255.0)用于该设备的每个接口。
我的猜测是,我可以分析数据并建立网络的逻辑连接。所以,我想问的是,我是否在正确的路径上知道网络拓扑(至少对于它的逻辑连接)。
这一切都是通过编程(c和objective-c)完成的,并且是针对学校项目的。
另外:有没有人知道有什么库可以绘制(根据这些信息)拓扑?
发布于 2010-11-12 06:29:59
因此,您已经有了每个设备的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可以很好地满足您的图形需求。
发布于 2010-11-12 09:05:25
对于作图,最简单的方法可能是以点格式输出文件,然后用graphviz将其作图。
https://stackoverflow.com/questions/4150018
复制相似问题