parsescan (Nmap::Parser)

    # File lib/nmap/parser.rb, line 229
            def self.parsescan(nmap, args, targets = []) # :yields: parser
                    if args =~ /[^-]-o|^-o/
                            raise "Output option (-o*) passed to parsescan()"
                    end

                    # Enable debugging, give us our XML output, pass args
                    command = nmap + " -d -oX - " + args + " "

                    command += targets.join(" ") if targets.any?

                    p = nil

                    begin
                            # First try popen3() if it loaded successfully..
                            Open3.popen3(command) do |sin, sout, serr|
                                    p = parseread(sout)
                            end
                    rescue NameError
                            # ..but fall back to popen() if not
                            IO.popen(command) do |io|
                                    p = parseread(io)
                            end
                    end

                    yield p if block_given?

                    p
            end