A method for forming a topology mapping, the method comprising: mapping, by a server, a topology of a network, wherein the mapping comprises collecting Spanning Tree Protocol data; collecting, by the server, layer-2 address tables from the topology mapping; collecting, by the server, address translation tables from nodes discovered in the mapping; identifying, by the server, switches, based on the nodes that return data, using layer-2 address tables; and correlating, by the server, Spanning Tree Protocol data, wherein the correlating comprises: - comparing data in the switches, including - - locating entries for a switch in an associated Spanning Tree Protocol table; - identifying switch ports directly connected to other switch ports, including: - - for the switch, comparing a base bridge address with a designated bridge address, and - - comparing the base bridge address with a neighbor's designated bridge address; - eliminating layer-2 addresses that do not correspond to the direct switch-to-switch port connections and that are located downstream from consideration for further layer-2 node mappings, including: - - finding a layer-2 address corresponding to an address of the neighbors port; - - when no neighbors port layer-2 address is found, creating a synthetic entry; - - storing neighbor switch node comprising either said found layer-2 address or said synthetic entry, and - - invalidating other layer-2 addresses in said switch. mapping, by a server, a topology of a network, wherein the mapping comprises collecting Spanning Tree Protocol data; collecting, by the server, layer-2 address tables from the topology mapping; collecting, by the server, address translation tables from nodes discovered in the mapping; identifying, by the server, switches, based on the nodes that return data, using layer-2 address tables; and correlating, by the server, Spanning Tree Protocol data, wherein the correlating comprises: - comparing data in the switches, including - - locating entries for a switch in an associated Spanning Tree Protocol table; - identifying switch ports directly connected to other switch ports, including: - - for the switch, comparing a base bridge address with a designated bridge address, and - - comparing the base bridge address with a neighbor's designated bridge address; - eliminating layer-2 addresses that do not correspond to the direct switch-to-switch port connections and that are located downstream from consideration for further layer-2 node mappings, including: - - finding a layer-2 address corresponding to an address of the neighbors port; - - when no neighbors port layer-2 address is found, creating a synthetic entry; - - storing neighbor switch node comprising either said found layer-2 address or said synthetic entry, and - - invalidating other layer-2 addresses in said switch. - comparing data in the switches, including - - locating entries for a switch in an associated Spanning Tree Protocol table; - - locating entries for a switch in an associated Spanning Tree Protocol table; - identifying switch ports directly connected to other switch ports, including: - - for the switch, comparing a base bridge address with a designated bridge address, and - - comparing the base bridge address with a neighbor's designated bridge address; - - for the switch, comparing a base bridge address with a designated bridge address, and - - comparing the base bridge address with a neighbor's designated bridge address; - eliminating layer-2 addresses that do not correspond to the direct switch-to-switch port connections and that are located downstream from consideration for further layer-2 node mappings, including: - - finding a layer-2 address corresponding to an address of the neighbors port; - - when no neighbors port layer-2 address is found, creating a synthetic entry; - - storing neighbor switch node comprising either said found layer-2 address or said synthetic entry, and - - invalidating other layer-2 addresses in said switch. - - finding a layer-2 address corresponding to an address of the neighbors port; - - when no neighbors port layer-2 address is found, creating a synthetic entry; - - storing neighbor switch node comprising either said found layer-2 address or said synthetic entry, and - - invalidating other layer-2 addresses in said switch.