Here's the full code - I'm reading in nmap output in scanfile.xml and
want to put the data in a mysql db:
#! /usr/bin/ruby
require 'rexml/document'
require "mysql"
require "dbi"
include REXML
scanfile = File.new('scanfile.xml')
doc = Document.new(scanfile)
root = doc.root
doc.elements.each("nmaprun") { |element|
puts element.attributes["args"]
args = element.attributes["args"]
puts element.attributes["startstr"]
timeofscan = element.attributes["startstr"]
puts element.attributes["version"]
version = element.attributes["version"] }
doc.elements.each("nmaprun/scaninfo") { |element|
puts element.attributes["type"]
scantype = element.attributes["type"]
puts element.attributes["protocol"]
protocol = element.attributes["protocol"]
puts element.attributes["numservices"]
numservices = element.attributes["numservices"]
# puts element.attributes["services"]
services = element.attributes["services"] }
doc.elements.each("nmaprun/scaninfo/host") { |element|
puts element.attributes["status state"] }
# database insert
dbname="nmap"
m = Mysql.new("localhost", "root", "")
dbh=DBI.connect("dbi:Mysql:nmap:localhost", "root", "")
m.select_db(dbname)
sth=dbh.prepare("INSERT INTO rawdata
(file,tool,arguments,startime,version) VALUES (?,?,?,?,?)")
sth.execute("scanfile.xml", "nmap", "${args}", "#{timeofscan}",
"${version}"")
--
Posted via http://www.ruby-forum.com/.