objective-c - 网络拓扑信息

标签 objective-c c networking network-programming topology

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

我只能访问网络层地址,所以我设法为网络上的每个设备获取它的 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/

相关文章:

在 iOS8.3 上显示警报 View 时,iOS 键盘通知不必要地触发

objective-c - 在Objective C中,如何获取元类对象?

c - C语言接收两个输入

c - 在c中显示字符的ASCII值

python 3 : No module named 'sklearn.model_selection'

linux - 如何从 perl 进行经过身份验证的 https 访问

objective-c - "Data Model Version Compile".. 升级到 Lion (Xcode4.1) 后出错

ios - NSDate dateFromString 2个月错误吗?

c - 从结构中释放分配的内存

session - SMPP session 序列 ID 最大值