Nicola Worthington > Parse-DMIDecode-0.03 > Parse::DMIDecode

Download:
Parse-DMIDecode-0.03.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  3
Open  0
View/Report Bugs
Module Version: 0.03   Source  

NAME ^

Parse::DMIDecode - Interface to SMBIOS using dmidecode

SYNOPSIS ^

 use strict;
 use Parse::DMIDecode ();
 
 my $decoder = new Parse::DMIDecode;
 $decoder->probe; # Actively probe using dmidecode
  
 # Manually supply your own dmidecode output to be parsed
 # $decoder->parse(qx(sudo /usr/sbin/dmidecode));
  
 printf("System: %s, %s",
         $decoder->keyword("system-manufacturer"),
         $decoder->keyword("system-product-name"),
     );

DESCRIPTION ^

This module provides an OO interface to SMBIOS information through the dmidecode command which is known to work under a number of Linux, BSD and BeOS variants.

METHODS ^

new

 my $decoder = Parse::DMIDecode->new(
                     dmidecode => "/usr/sbin/dmidecode",
                     nowarnings => 1,
                 );

This is the constructor method to create a Parse::DMIDeocde object. It accepts two optional arguments; dmidecode and nowarnings.

The dmidecode argument specifies the full path and filename of the dmodecode command that should used by the probe method.

The nowarnings argument instructs Parse::DMIDecode not to emit any parser warnings.

probe

 $decoder->probe;

This method executes an active probe to gather information using the dmidecode command. It does not accept any arguments.

parse

 my $raw = qx(sudo /usr/sbin/dmidecode);
 $decoder->prase($raw);

This method is a passive alternative to the probe method. It accepts a single string argument which should contain output from the dmidecode command, which it will parse.

keyword

 my $serial_number = $decoder->keyword("system-serial-number");

keywords

 my @keywords = $decoder->keywords;
 my @bios_keywords = $decoder->keywords("bios");
 
 for my $keyword (@bios_keywords) {
     printf("%s => %s\n",
             $keyword,
             $decoder->keyword($keyword)
         );
 }

handle_addresses

 my @addresses = $decoder->handle_addresses;

get_handles

 use Parse::DMIDecode::Constants qw(@TYPES);
 
 # Available groups to query: bios, system, baseboard,
 #    chassis, processor, memory, cache, connector, slot
 for my $handle ($decoder->get_handles( group => "memory" )) {
     printf(">> Found handle at %s (%s):\n%s\n",
             $handle->address,
             $TYPES[$handle->dmitype],
             $handle->raw
         );
 }

See Parse::DMIDecode::Handle for accessor method documentation for handle objects.

smbios_version

 my $smbios_version = $decoder->smbios_version;

Returns the SMBIOS version number.

dmidecode_version

 my $dmidecode_version = $decoder->dmidecode_version;

Returns the version number of the copy of dmidecode that was used to create the source data that was parsed. This value may not be available when using older versions of dmidecode.

table_location

 my $memory_address = $decoder->table_location;

structures

 my $total_structures = $decoder->structures;

SEE ALSO ^

Parse::DMIDecode::Handle, Parse::DMIDecode::Constants, Parse::DMIDecode::Examples, examples/*.pl, http://search.cpan.org/src/NICOLAW/Parse-DMIDecode-0.03/examples/, http://www.nongnu.org/dmidecode/, http://linux.dell.com/libsmbios/, http://sourceforge.net/projects/x86info/, http://www.dmtf.org/standards/smbios, biosdecode(8), dmidecode(8), vpddecode(8)

VERSION ^

$Id: DMIDecode.pm 1004 2007-03-11 12:43:25Z nicolaw $

AUTHOR ^

Nicola Worthington <nicolaw@cpan.org>

http://perlgirl.org.uk

If you like this software, why not show your appreciation by sending the author something nice from her Amazon wishlist? ( http://www.amazon.co.uk/gp/registry/1VZXC59ESWYK0?sort=priority )

COPYRIGHT ^

Copyright 2006,2007 Nicola Worthington.

This software is licensed under The Apache Software License, Version 2.0.

http://www.apache.org/licenses/LICENSE-2.0

syntax highlighting: