【问题标题】:network topology网络拓扑结构
【发布时间】:2011-03-31 09:46:15
【问题描述】:

我正在尝试使用 c 或 c++ 构建一个显示网络拓扑的应用程序。我有套接字的知识。我知道这是一个没有多少细节的广泛问题。只是我还没有找到任何可以开始的地方。我不知道该怎么办。

【问题讨论】:

  • 对于初学者,您可能会发现arprouteipconfig 提供的信息很有用。

标签: c sockets networking topology


【解决方案1】:

我将做一些假设:
1. 您与设备有网络连接。 2. 您拥有或可以获得SNMP-read权限。

大多数网络设备都可以与 SNMP 通信。 从 SNMP 信息中,您可以确定有关设备的大量信息。 您可以获得的信息包括“CDP”“LLDP”信息。 “CDP”是 Cisco 用于邻居信息的专有协议,“LLDP”是 Cisco 设备通常也支持的开放标准。

如果设备没有运行 CDP 或 LLDP 并且您无法将其打开,则可以改用 FDB(转发数据库)。 这意味着您将通过 SNMP 获得的接口设备的 MAC 地址与其他设备接口的 MAC 地址表相匹配。 这有点复杂,因为 MAC 地址可以显示在多个接口上。我不知道它的确切表示方式。

因此,对于弄清楚事物如何连接的逻辑部分,我认为这是要走的路。 其他人必须帮助您处理的图形部分。

【讨论】:

    【解决方案2】:

    这就像您在生活中遇到的任何问题一样,需要对问题进行明确定义。您需要将其分解为多个部分。

    首先,您是否需要“发现”拓扑,或者您是否已经在某个文本文件中提供了它?您的要求仅仅是绘制拓扑图(在这种情况下,一个名为“graphviz”的程序可能已经完成了您需要的工作)?如果一定要发现拓扑,那是什么样的网络呢?局域网?广域网? TCP/IP?还有什么?

    然后你必须问自己为什么要使用 C 或 C++ - 从你的问题中可以看出你对网络没有太多经验 - 因此不清楚你为什么要麻烦使用用于执行您选择的任务的低级语言。在短期内,也许一种高级语言是合适的。

    请注意,许多人都面临着与您相同的挑战 - 绘制网络拓扑图;因此有许多应用程序可以做到这一点。或许您可以详细说明您想自己尝试这项任务的原因?

    【讨论】:

    • 让我通过回答您的问题来缩小搜索范围。 1)我需要发现拓扑,这是我更大的子问题 2)我需要绘制它,但我想我可以使用一个图形库,也许使用你说的那个 3)它是一个 LAN 网络。特别是中小型企业的网络。 4)我以前使用过 c 套接字,但只是为了做 ip 应用程序而不是这个。语言是要求。我更喜欢高级语言。
    • 关于发现:你考虑过像netdisco这样的应用吗?
    • @gvalero87 你用什么来发现网络拓扑的?
    猜你喜欢
    • 2014-10-14
    • 2011-05-08
    • 2012-07-13
    • 1970-01-01
    • 2012-05-31
    • 2012-03-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    相关资源
    最近更新 更多