- I don't understand why $host->os() is a function while $host->status is not. That should be consistent. (or rename os() to getOs()).
- $services->count() - if you already have an arrayiterator, you can use count($services) directly. Same for rewind() in the examples.
- You should use System::which() to find the nmap binary instead of hardcoding the path into the class.
- In Parser.php you should add a link to the nmap xml format docs
- The parser (and the other classes, too) should definitely be unit-tested
- You cannot set delete_output_file via the options
- The package does not work on windows (XML Parser error, no temp file generated) (yes, there is a windows version of nmap)