in reply to Network topology mapping
Your question is about the data representation of the network topology. The CPAN Graph::Base module defines methods for representing networks efficiently. Given one of your @ip_addrs arrays,
use Graph; my $G = Graph->new(); # Create Graph object with listed verteces # Obtain a route in @ip_addrs, then: add_chain $G, @ip_addrs; # lather, rinse, and repeat sub add_chain { my $g = shift; # add_edge produces any vertices not already present $g->add_edge($_[$_-1],$_[$_]) for 1..scalar(@_)-1; }
There are many advantages to this. Graph takes care of nasties like cyclic graphs, which would give you trouble in a hand-rolled representation. It has methods like neighbors($vertex), successors($vertex), predecessors($vertex), and many more ('man Graph::Base'). Edges can be weighted by, say, bandwidth to provide support for network traffic analysis.
Hope this helps.
Update: Graph::Base is under the hood of the Graph module. I cited Graph::Base rather than Graph because cpan search on 'Graph' turns up lots of irrelevancies. Here's a link to the tarball, or (with CPAN.pm): $ perl -MCPAN -e 'shell' cpan> install Graph Re: Masem's response, mr_linux wants to scan a 192.168.x/23 network, about 29 IP's. That net may be sparse enough for a simple homegrown representation, but I like the painlessness and power of the Graph module.
After Compline,
Zaxo
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Network topology mapping
by Masem (Monsignor) on Aug 30, 2001 at 15:29 UTC | |
|
Re: Re: Network topology mapping
by mr_linux (Novice) on Aug 30, 2001 at 20:54 UTC | |
|
Re: Re: Network topology mapping
by mr_linux (Novice) on Aug 31, 2001 at 23:30 UTC |