我有一个小型企业网络,有几个交换机、终端设备,但只有一个路由器。我想像图表一样显示网络拓扑(路由器在上面)。
我只能访问网络层地址,所以我设法为网络上的每个设备获取它的 ip 地址和 ip 网络,即该设备的每个接口(interface)的 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 可以很好地满足您的图形需求。
关于objective-c - 网络拓扑信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4150018/