Codebase list libparse-dmidecode-perl / HEAD
HEAD

Tree @HEAD (Download .tar.gz)

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>