From 7b6718f2b638e10a65e2b3debfa21662b304b412 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Mon, 23 Apr 2018 08:21:11 +0200 Subject: [PATCH] generate graphviz dot --- wap-scan.pl | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/wap-scan.pl b/wap-scan.pl index d19510e..174f6c4 100755 --- a/wap-scan.pl +++ b/wap-scan.pl @@ -64,6 +64,10 @@ sub _dot { return $t; } +my $ap_freq; +my $freq_count; +my @edges; + foreach my $ap ( keys %$stat ) { foreach my $bss ( keys %{ $stat->{$ap} } ) { if ( exists $mac2hostname->{$bss} ) { @@ -72,7 +76,13 @@ foreach my $ap ( keys %$stat ) { my $len = $stat->{$ap}->{$bss}->{signal} || die "no signal in ",dump($stat->{$ap}->{$bss}); $len =~ s/ \w+//; $len = abs($len); - printf $dot qq| %s -> %s [ len = %d ];\n|, _dot($ap),_dot($remote),$len; + my $freq = $stat->{$ap}->{$bss}->{freq}; + if ( $stat->{$ap}->{$bss}->{SSID} =~ m/eduroam/i && $freq =~ m/^24/ && $len < 90 ) { # FIXME + $ap_freq->{ $remote }->{$freq}++; + $freq_count->{$freq}++; + printf $dot qq| %s -> %s:%s [ len = %d, label = "%s" ];\n|, + _dot($ap),_dot($remote),$freq, $len, $len; + } } else { print "$ap EXTERNAL "; } @@ -82,6 +92,14 @@ foreach my $ap ( keys %$stat ) { } } +warn "# freq_count = ",dump($freq_count); +warn "# ap_freq = ",dump($ap_freq); + +foreach my $node ( keys %$ap_freq ) { + print $dot _dot($node), ' [ shape=record, label="', $node, '|{', join('|', map { "<$_>$_ " . $ap_freq->{$node}->{$_} } sort keys %{ $ap_freq->{$node} }), '}" ];', "\n"; + +} + print $dot qq| } |; -- 2.20.1