我正在用C#编写程序。该软件可在所有主机上运行。 软件需要知道哪些主机连接到自己的第2层交换机。 在不干扰服务器的情况下完成此操作非常重要,因为此软件适用于LanParty,并且服务器上的硬件和软件以及相同的LAN也会发生变化。
了解所有主机的位置并不重要,但您只需知道哪些主机连接到同一台交换机。
在该示例中,“主机A”知道“主机C”和“主机E”连接到同一交换机,而所有其他主机不连接。
答案 0 :(得分:1)
如果交换机使用SNMP,您只需询问它们的MAC地址表,并确定哪些主机连接在哪里。
如果他们不这样做,你将不得不诉诸这样的技巧:
因此,如果接收器以外的任何主机看到第二个数据包,则证明主机和发件人均连接到不在接收器和接收器之间的直接路径上。
我们假设接收器,接收器以及所有未看到第二个数据包的听众都连接到一个交换机,发件人和所有确实看到它的听众与另一个人相连。 再次尝试使用新的MAC地址和三个角色的新分配,直到您有足够的信息来确定网络拓扑(或直到您放弃并接受单个切换的第一个假设)。