#!/usr/bin/perl # # NIST NVD Feed Parser # David Kyger 7-6-07 # License - GNU GPL use XML::Simple qw(:strict); use Data::Dumper; use POSIX qw(strftime); my $report = "report.html"; open(REPORT,">$report"); my $url = 'http://nvd.nist.gov/download/nvdcve-recent.xml'; `/usr/local/bin/wget -q $url`; my $file = "nvdcve-recent.xml"; my $today = strftime( "%Y-%m-%d", localtime ); my $yesterday = strftime( "%Y-%m-%d", localtime(time-86400)); $xml = new XML::Simple; $data = $xml->XMLin( "nvdcve-recent.xml", KeyAttr => { cve => 'entry' }, ForceArray => [ 'cve', 'ref' ] ); my $e; print REPORT '<html><body>'; print REPORT '<table style="text-align: left;" border="1" cellpadding="2" cellspaci +ng="2"><tbody>'; print REPORT '<tr><td><b>Name</b></td><td><b>Published</b></td><td><b>Modified</b>< +/td><td><b>Severity</b></td><td><b>Description</b></td><td><b>Referen +ces</b></td></tr>' ; foreach $e ( @{ $data->{entry} } ) { if ( $e->{severity} =~ /High/ && $e->{modified} =~ /($today|$yeste +rday)/ ) { ; print REPORT '<tr><td>' . $e->{name} . '</td>'; print REPORT '<td>' . $e->{published} . '</td>'; print REPORT '<td>' . $e->{modified} . '</td>'; print REPORT '<td>' . $e->{severity} . '</td>'; print REPORT '<td>' . $e->{desc}->{descript}->{content} . '</td><td><br>'; foreach $ref ( @{ $e->{refs}->{ref} } ) { print REPORT '<a href="' . $ref->{url} . '" target="_blank +">'; print REPORT $ref->{source} . '</a><br>'; } } } print REPORT '</td></tr>'; print REPORT '</table><p>'; print REPORT '</html></body>';
In reply to NIST NVD Feed Parser by semio
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |