Na minha última viagem ao exterior, mais de 1 ano atrás, bem antes de qualquer palavra parecida com "crise" surgir na mídia, adquiri um Wireless router WGR614 v7 da Netgear.

Funciona a contento, como a grande maioria dos produtos desse tipo, mas tem um grande ponto negativo: a falta de interfaces telnet e snmp para comandos e monitoramento.

Como precisava ter uma idéia do meu tráfego de rede, resolvi fazer um script para ser usando com o MRTG. Escrito em perl, precisa do navegador via texto "lynx" para buscar os dados:


#! /usr/bin/perl
# WGR614v7_traffic.pl
# by Helio Loureiro
### Variables
$login = "admin";
$password = "admin";
$netgear = "192.168.1.1";
$option = $ARGV[0];
###
if ($option !~ m/WAN|LAN|WLAN/) {
print "Use: $0 [WAN|LAN|WLAN]\n";
exit 1;
}
### Using a command at this moment
$location = "http://".$netgear."/RST_stattbl.htm";
$cmd = "lynx -source -auth ".$login.":".$password." ".$location. " 2> /dev/null";
open(CMD, "$cmd|") or die "Impossible to connect in $netgear: $!\n";
$check = 0;
$idx = 0;
@NETGEAR ;
$description;
while ($line = ) {
if ($line =~ m/description/) {
$description = $line;
$description =~ s/.*=//;
$description =~ s/\"|>//g;
chomp $description;
}
# to ignore lines not related
if ($line =~ m/$option/) {
$check++;
}
next if (! $check);
last if ( $line =~ m/<\/tr>/ );
chomp($line);
# removing html tags
$line =~ s/<\/.*//;
$line =~ s/.*>//;
# removing blank lines
next if ($line !~ m/\w|\d/);
$NETGEAR[$idx] = $line;
$idx++;
}
$description .= " ".$NETGEAR[0]."/".$NETGEAR[1];
print $NETGEAR[2]."\n";
print $NETGEAR[3]."\n";
print $NETGEAR[-1]."\n";
print $description."\n";

O programa, chamado "WGR614v7_traffic.pl", exige como argumento as opções WAN, LAN ou WLAN.

Para o MRTG, adicione uma entrada como:


Target[wan]: `/home/helio/bin/WGR614v7_traffic.pl WAN`
 MaxBytes[wan]: 1000000
 Title[wan]: WAN packets traffic at WGR614v7
 PageTop[wan]:

<h1>WAN packets traffic at WGR614v7</h1>
<table>
<tbody>
<tr>
<td>System:</td>
<td>WGR614v7</td>
</tr>
<tr>
<td>Maintainer:</td>
<td>Helio Loureiro</td>
</tr>
<tr>
<td>Interface:</td>
<td>wan traffic</td>
</tr>
<tr>
<td>IP:</td>
<td>none</td>
</tr>
<tr>
<td>Max wan traffic:</td>
<td>2 Mbps</td>
</tr>
</tbody>
</table>

 YLegend[wan]: Packets/sec 
 ShortLegend[wan]: Pkts

Infelizmente o dados fornecido está em packets/second. Como não tenho a mínima idéia de qual packet size está sendo usado... fica um dado meio perdido. Também notei, via MRTG, que os dados não são tão precisos assim: as entrada e saída tem quase os mesmos valores, o que não dever ser verdade. Mas ao menos tenho alguma idéia do meu tráfego.