Ola,<br><br>peguei a thread andando.. mais seguem meus cents.<br><div class="gmail_quote"><br>2008/5/1 Luis Motta Campos <<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Luis Motta Campos wrote:<br>
> Alguém se habilita para o código?<br>
<br>
Eu me habilito :D<br>
<br>
> Eu sugiro:<br>
><br>
> LWP<br>
> Iterator<br>
> Net::IP<br>
<br>
Sugestão quase toda aceita. O Net::IP tem um iterador incorporado, não é<br>
preciso usar o módulo Iterator. ;)<br>
<br>
Me desculpem a demora, a minha máquina de lavar pratos me obrigou a<br>
lavar os pratos eu mesmo, ontem. :D<br>
<br>
Aqui tem uma linha que varre a faixa de IPs <a href="http://200.0.0.0" target="_blank">200.0.0.0</a> - <a href="http://200.255.255.255" target="_blank">200.255.255.255</a><br>
e encontra todos os webservers disponíveis nesta faixa, perguntando para<br>
cada um deles os headers para '/'.<br>
</blockquote><div>Varrer 200/8 ou 201/8 ira incluir prefixos de outros paises. para obter corretamente os prefixos do Brasil:<br><pre>curl -O <a href="ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest">ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest</a><br>
grep BR delegated-lacnic-latest | grep ipv4 | \<br>        awk -F "\|" '{print $4 "/" (32 - (log($5)/log(2)))}'</pre> <codigo removido><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
O meu problema agora é que isso é lento que dá dó (mesmo com timeouts<br>
ridículos como 2s). <br></blockquote><div>Outro problema que irá ocorrer usando esta metodologia é que ira pegar MUITOS dispositivos como routers ou appliances. irá precisar filtrar.<br>Acredito que a melhor maneira é fazer por amostragem.<br>
<br>mysql> desc banner;<br>+-------------+------------------+------+-----+---------+----------------+<br>| Field | Type | Null | Key | Default | Extra |<br>+-------------+------------------+------+-----+---------+----------------+<br>
| b_id | int(10) unsigned | NO | PRI | NULL | auto_increment |<br>| target_t_id | int(10) unsigned | NO | PRI | NULL | |<br>| b_port | int(10) unsigned | YES | | NULL | |<br>
| b_buf | varchar(255) | YES | | NULL | |<br>| b_date | datetime | YES | | NULL | |<br>| b_lock | tinyint(1) | YES | | NULL | |<br>
+-------------+------------------+------+-----+---------+----------------+<br>6 rows in set (0.00 sec)<br><br>mysql> select count(*) from banner;<br>+----------+<br>| count(*) |<br>+----------+<br>| 21279 |<br>+----------+<br>
1 row in set (0.00 sec)<br><br>mysql> select count(*) from banner where b_buf like '%perl%';<br>+----------+<br>| count(*) |<br>+----------+<br>| 522 |<br>+----------+<br>1 row in set (0.03 sec)<br><br>mysql> select count(*) from banner where b_buf like '%php%';<br>
+----------+<br>| count(*) |<br>+----------+<br>| 3024 |<br>+----------+<br>1 row in set (0.04 sec)<br><br>mysql> select count(*) from banner where b_buf like '%python%';<br>+----------+<br>| count(*) |<br>
+----------+<br>| 176 |<br>+----------+<br>1 row in set (0.03 sec)<br><br>boa parte destes 21k banners são dispositivos de rede que hospedam apenas a GUI de configuração como por exemplo:<br>mysql> select count(*) from banner where b_buf like 'micro_httpd';<br>
+----------+<br>| count(*) |<br>+----------+<br>| 1794 |<br>+----------+<br>1 row in set (0.03 sec)<br><br>mysql> select count(*) from banner where b_buf like '%virata%';<br>+----------+<br>| count(*) |<br>
+----------+<br>| 2810 |<br>+----------+<br>1 row in set (0.04 sec)<br></div></div>