Domanda

Voglio costruire qualcosa che fa una scansione ping con Nmap periodicamente per rilevare gli host mostrando e rilasciando la rete.C'è un modo semplice per leggere l'uscita Nmap per Ruby?La mia preferenza sta evitando librerie di terze parti.

Grazie mille!

È stato utile?

Soluzione 3

ha imparato che semplicemente impiegare i backtteri attorno al comando mi consentirà di catturare l'output come variabile:

Test= nmap -sP 192.168.1.0/24 P 'Test:' mette test.split ("\ n")

sembra funzionare perfettamente.Tuttavia, come ha sottolineato il bonsaivking, sarebbe saggio indagare sulla funzionalità XML di Nmap.

Altri suggerimenti

Cercando di analizzare l'output del testo di Nmap è il modo sbagliato per farlo.Il formato è cambiato molte volte in passato e cambierà certamente in futuro.Il modo corretto per farlo è per analizzare l'uscita XML di Nmap, generata con l'argomento -oX.Ci sono già alcune biblioteche rubini progettate per questo (Chris Gates copre questo approccio Nel suo blog ), oppure potresti iniziare con una libreria del parser XML e rotolare il tuo. Nokogri è una libreria antigas di analisi XML molto buona in Ruby.

Puoi provare qualcosa del genere:

require 'open3'
stdin, stdout, stderr = Open3.popen3('nmap -sP 192.168.1.0/24')
.

Allora puoi analizzare Stdout e Stderr e ottenere quello che vuoi usare lo standard Ruby.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top