1

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

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

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

这一切都是以编程方式完成的(c 和 Objective-c),并且是针对学校项目的。

PLUS:有谁知道任何可以绘制(给定此信息)拓扑的库?

4

2 回答 2

1

因此,您已经拥有每台设备的 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-11T22:29:59.437 回答
1

对于绘图,最简单的方法可能是以点输出文件,然后用 graphviz 绘制它。

于 2010-11-12T01:05:24.540 回答