Ola,<br><br>peguei a thread andando.. mais seguem meus cents.<br><div class="gmail_quote"><br>2008/5/1 Luis Motta Campos &lt;<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>&gt;:<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>
&gt; Alguém se habilita para o código?<br>
<br>
Eu me habilito :D<br>
<br>
&gt; Eu sugiro:<br>
&gt;<br>
&gt; &nbsp; &nbsp;LWP<br>
&gt; &nbsp; &nbsp;Iterator<br>
&gt; &nbsp; &nbsp;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 &#39;/&#39;.<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 &quot;\|&quot; &#39;{print $4 &quot;/&quot; (32 - (log($5)/log(2)))}&#39;</pre>&nbsp;&lt;codigo removido&gt;<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).&nbsp;<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&gt; desc banner;<br>+-------------+------------------+------+-----+---------+----------------+<br>| Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Null | Key | Default | Extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>+-------------+------------------+------+-----+---------+----------------+<br>
| b_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | int(10) unsigned | NO&nbsp;&nbsp; | PRI | NULL&nbsp;&nbsp;&nbsp; | auto_increment |<br>| target_t_id | int(10) unsigned | NO&nbsp;&nbsp; | PRI | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>| b_port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | int(10) unsigned | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>
| b_buf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | varchar(255)&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>| b_date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | datetime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>| b_lock&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | tinyint(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | YES&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; | NULL&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>
+-------------+------------------+------+-----+---------+----------------+<br>6 rows in set (0.00 sec)<br><br>mysql&gt; select count(*) from banner;<br>+----------+<br>| count(*) |<br>+----------+<br>|&nbsp;&nbsp;&nbsp; 21279 |<br>+----------+<br>
1 row in set (0.00 sec)<br><br>mysql&gt; select count(*) from banner where b_buf like &#39;%perl%&#39;;<br>+----------+<br>| count(*) |<br>+----------+<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 522 |<br>+----------+<br>1 row in set (0.03 sec)<br><br>mysql&gt; select count(*) from banner where b_buf like &#39;%php%&#39;;<br>
+----------+<br>| count(*) |<br>+----------+<br>|&nbsp;&nbsp;&nbsp;&nbsp; 3024 |<br>+----------+<br>1 row in set (0.04 sec)<br><br>mysql&gt; select count(*) from banner where b_buf like &#39;%python%&#39;;<br>+----------+<br>| count(*) |<br>
+----------+<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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&gt; select count(*) from banner where b_buf like &#39;micro_httpd&#39;;<br>
+----------+<br>| count(*) |<br>+----------+<br>|&nbsp;&nbsp;&nbsp;&nbsp; 1794 |<br>+----------+<br>1 row in set (0.03 sec)<br><br>mysql&gt; select count(*) from banner where b_buf like &#39;%virata%&#39;;<br>+----------+<br>| count(*) |<br>
+----------+<br>|&nbsp;&nbsp;&nbsp;&nbsp; 2810 |<br>+----------+<br>1 row in set (0.04 sec)<br></div></div>