5 use Data::Dump qw(dump);
11 $hostname =~ s/^.*\///;
12 $hostname =~ s/_.*$//;
17 foreach my $link ( glob "/dev/shm/wap/*ip_link*" ) {
18 my $hostname = path2hostname $link;
19 open(my $fh, '<', $link);
23 if ( m/^\d+:\s(\S+):/ ) {
25 } elsif ( m/link\/ether\s(\S+)/ ) {
26 push @{ $mac2hostname->{$1}->{$hostname} }, $if;
32 warn "# mac2hostname = ",dump($mac2hostname);
34 foreach my $scan ( glob "/dev/shm/wap/*iw_*_scan" ) {
35 my $hostname = path2hostname $scan;
37 open(my $fh, '<', $scan);
41 if ( m/^BSS\s(\S+)\(on\s(\S+)\)/ ) {
43 $stat->{$hostname}->{$bss} = {
47 } elsif ( m/^\s*(freq|signal|SSID):\s*(.+)/ ) {
48 $stat->{$hostname}->{$bss}->{$1} = $2;
54 warn "# stat = ", dump($stat);
57 foreach my $ap ( keys %$stat ) {
58 foreach my $bss ( keys %{ $stat->{$ap} } ) {
59 if ( exists $mac2hostname->{$bss} ) {
60 my $remote = join(',', keys %{ $mac2hostname->{$bss} } );
63 print "$ap EXTERNAL ";
65 my $info = dump( $stat->{$ap}->{$bss} );
66 $info =~ s/[\n\r\s]+/ /gs;
73 ls /dev/shm/wap/*iw_*_scan | while read file ; do
75 hostname=`echo $file | sed -e 's/^.*\///' -e 's/_.*$//'`
77 echo `egrep '(BSS|freq:|signal:|SSID:)' $file` \
78 | sed -e 's/\n */ /g' -e "s/ *BSS/\n## $hostname BSS/g" -e 's/ *(on \([^ ][^ ]*\)) */ \1 /g'