[SP-pm] [SOURCE CODE] Re: Um índice de utilização para a Linguagem Perl
Brenno Oliveira
brenno em bsd.com.br
Quinta Maio 1 16:52:04 PDT 2008
Ola,
peguei a thread andando.. mais seguem meus cents.
2008/5/1 Luis Motta Campos <luismottacampos em yahoo.co.uk>:
> Luis Motta Campos wrote:
> > Alguém se habilita para o código?
>
> Eu me habilito :D
>
> > Eu sugiro:
> >
> > LWP
> > Iterator
> > Net::IP
>
> Sugestão quase toda aceita. O Net::IP tem um iterador incorporado, não é
> preciso usar o módulo Iterator. ;)
>
> Me desculpem a demora, a minha máquina de lavar pratos me obrigou a
> lavar os pratos eu mesmo, ontem. :D
>
> Aqui tem uma linha que varre a faixa de IPs 200.0.0.0 - 200.255.255.255
> e encontra todos os webservers disponíveis nesta faixa, perguntando para
> cada um deles os headers para '/'.
>
Varrer 200/8 ou 201/8 ira incluir prefixos de outros paises. para obter
corretamente os prefixos do Brasil:
curl -O ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
grep BR delegated-lacnic-latest | grep ipv4 | \
awk -F "\|" '{print $4 "/" (32 - (log($5)/log(2)))}'
<codigo removido>
> O meu problema agora é que isso é lento que dá dó (mesmo com timeouts
> ridículos como 2s).
>
Outro problema que irá ocorrer usando esta metodologia é que ira pegar
MUITOS dispositivos como routers ou appliances. irá precisar filtrar.
Acredito que a melhor maneira é fazer por amostragem.
mysql> desc banner;
+-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| b_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| target_t_id | int(10) unsigned | NO | PRI | NULL | |
| b_port | int(10) unsigned | YES | | NULL | |
| b_buf | varchar(255) | YES | | NULL | |
| b_date | datetime | YES | | NULL | |
| b_lock | tinyint(1) | YES | | NULL | |
+-------------+------------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
mysql> select count(*) from banner;
+----------+
| count(*) |
+----------+
| 21279 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from banner where b_buf like '%perl%';
+----------+
| count(*) |
+----------+
| 522 |
+----------+
1 row in set (0.03 sec)
mysql> select count(*) from banner where b_buf like '%php%';
+----------+
| count(*) |
+----------+
| 3024 |
+----------+
1 row in set (0.04 sec)
mysql> select count(*) from banner where b_buf like '%python%';
+----------+
| count(*) |
+----------+
| 176 |
+----------+
1 row in set (0.03 sec)
boa parte destes 21k banners são dispositivos de rede que hospedam apenas a
GUI de configuração como por exemplo:
mysql> select count(*) from banner where b_buf like 'micro_httpd';
+----------+
| count(*) |
+----------+
| 1794 |
+----------+
1 row in set (0.03 sec)
mysql> select count(*) from banner where b_buf like '%virata%';
+----------+
| count(*) |
+----------+
| 2810 |
+----------+
1 row in set (0.04 sec)
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/saopaulo-pm/attachments/20080501/f7b0bd22/attachment.html
Mais detalhes sobre a lista de discussão SaoPaulo-pm