我正在尝试使用c或c++构建一个显示网络拓扑的应用程序。我对套接字有一定的了解。我知道这是一个宽泛的问题,但细节很少。只是我还没有找到任何可以开始的东西。我不知道该怎么办。
发布于 2010-08-18 15:43:56
这就像你在生活中面临的任何问题一样,需要对问题有一个清晰的定义。你需要把它分解成几个部分。
首先,您是否需要“发现”拓扑,或者您已经在某个文本文件中提供了拓扑?您的需求仅仅是绘制拓扑图(在这种情况下,名为"graphviz“的程序可能已经完成了您需要的工作)?如果您必须发现拓扑,它是哪种类型的网络?伊恩?万?TCP/IP?还有别的吗?
然后,你必须问自己为什么要使用C或C++ -从你的问题看,你对网络没有太多的经验-因此,你为什么要不厌其烦地使用一种低级语言来承担你选择的任务,这并不明显。也许一种高级语言在短期内是合适的。
请注意,许多应用程序都面临着与您相同的挑战--绘制网络拓扑图;因此,有许多应用程序就是这样做的。也许你可以详细说明你自己想要尝试这项任务的原因?
发布于 2015-04-29 17:35:27
我将做一些假设:
大多数网络设备都可以与SNMP通信。根据SNMP信息,您可以确定有关设备的信息负载。您可以获得的信息包括"CDP"和"LLDP"信息。"CDP“是思科用于邻居信息的专有协议,"LLDP”是思科设备通常也支持的开放标准。
如果设备未运行CDP或LLDP,并且您无法将其打开,则可以改用FDB (转发数据库)。这意味着您可以将使用SNMP获取的接口设备的MAC地址与其他设备接口的MAC地址表进行匹配。这有点复杂,因为MAC地址可以显示在多个接口上。不过,我不知道它的确切表示方式。
因此,对于弄清楚事物如何联系的逻辑部分,我认为这是一种方法。其他人必须帮助你的图形部分。
https://stackoverflow.com/questions/3509876
复制相似问题